Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Return Count()过期天数_C#_Linq - Fatal编程技术网

C# Return Count()过期天数

C# Return Count()过期天数,c#,linq,C#,Linq,我想返回count()将要过期的警报天数小于或等于(ExpireDate-Datetime.Now)的项目,我正在c#中使用linq to sql。 我得到这个错误: 方法“Int32 getDifference(System.DateTime)”不支持到SQL的转换 任何帮助都将不胜感激。 这是我的密码: public static int getAlertDays() { using (var db = new AWarehouseDataClassesDataContext())

我想返回count()将要过期的警报天数小于或等于(ExpireDate-Datetime.Now)的项目,我正在c#中使用linq to sql。 我得到这个错误:

方法“Int32 getDifference(System.DateTime)”不支持到SQL的转换

任何帮助都将不胜感激。 这是我的密码:

public static int getAlertDays()
{
   using (var db = new AWarehouseDataClassesDataContext())
   {
     var count = (from i in db.tblItems
                 where (getDifference(i.ExpireDate) <= i.AlertDays)
                 select i).Count();
     return count;
   }
}

private static int getDifference(DateTime expireDate)
{
   return (expireDate - DateTime.Now).Days;
}
public static int getAlertDays()
{
使用(var db=new AWarehouseDataClassesDataContext())
{
var count=(从db.tblItems中的i开始)

其中(getDifference(i.ExpireDate)您可以使用
DbFunctions.DiffDays

var count = (from i in db.tblItems
             where DbFunctions.DiffDays(i.ExpireDate, DateTime.Now) <= i.AlertDays
             select i).Count();

             return count;
var count=(从db.tblItems中的i开始)

其中DbFunctions.DiffDays(即ExpireDate,DateTime.Now)您可以使用
DbFunctions.DiffDays

var count = (from i in db.tblItems
             where DbFunctions.DiffDays(i.ExpireDate, DateTime.Now) <= i.AlertDays
             select i).Count();

             return count;
var count=(从db.tblItems中的i开始)

where DbFunctions.DiffDays(即ExpireDate,DateTime.Now)消息指出SQL中不支持您的方法
getDifference
,即SQL中没有具有该名称的方法。我相信您所需要做的就是将该函数内联到语句中,使其工作,即

var count = (from i in db.tblItems
             where ((i.ExpireDate - DateTime.Now).Days <= i.AlertDays)
             select i).Count();
var count=(从db.tblItems中的i开始)

where((i.ExpireDate-DateTime.Now).Days消息指出SQL中不支持您的方法
getDifference
,即SQL中没有具有该名称的方法。我相信您只需将该函数内联到语句中即可,即

var count = (from i in db.tblItems
             where ((i.ExpireDate - DateTime.Now).Days <= i.AlertDays)
             select i).Count();
var count=(从db.tblItems中的i开始)

其中((i.ExpireDate-DateTime.Now).Days
System.Data.Entity.DbFunctions
()有一个
DiffDays
函数:

// Add this to your using
using System.Data.Entity;

// Back to your example
var count = db.tblItems.Count(i =>
                DbFunctions.DiffDays(i.ExpireDate, DateTime.Now) <= i.AlertDays);
//将其添加到您的
使用System.Data.Entity;
//回到你的例子
var count=db.tblItems.count(i=>

DbFunctions.DiffDays(即ExpireDate,DateTime.Now)
System.Data.Entity.DbFunctions
()具有一个
DiffDays
函数:

// Add this to your using
using System.Data.Entity;

// Back to your example
var count = db.tblItems.Count(i =>
                DbFunctions.DiffDays(i.ExpireDate, DateTime.Now) <= i.AlertDays);
//将其添加到您的
使用System.Data.Entity;
//回到你的例子
var count=db.tblItems.count(i=>

DbFunctions.DiffDays(i.ExpireDate、DateTime.Now)只需将对
getDifference
的调用替换为Linq中的这一行代码。问题是,它正在尝试将其转换为SQL,但不知道如何转换您的方法。只需将对
getDifference
的调用替换为Linq中的这一行代码。问题是它正在尝试将其转换为SQL和SQL不知道如何翻译您的方法。我得到以下错误:名称“DbFunctions”在当前上下文中不存在。@PlazzaSele:您需要将名称空间添加到using中。我得到以下错误:名称“DbFunctions”在当前上下文中不存在。@PlazzaSele:您需要将名称空间添加到using中。