Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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# EF5和x2B;使用';比如';Lambda表达式中的运算符_C#_Entity Framework_Ef Code First_Lambda - Fatal编程技术网

C# EF5和x2B;使用';比如';Lambda表达式中的运算符

C# EF5和x2B;使用';比如';Lambda表达式中的运算符,c#,entity-framework,ef-code-first,lambda,C#,Entity Framework,Ef Code First,Lambda,在我的实体(销售)中,有一个类型为DateTime列Date 我使用以下lambda表达式从该表中获取最新的TrNo。但它总是给我Null。因为它还比较列的时间部分。实际上,我想比较一下列的日期部分 db.Sales.OrderByDescending(O => O.Date).Where(O => O.Date == DateTime.Now ).Select(O => O.TrNo).FirstOrDefault(); 请帮助我获得正确的代码构建。(我的数据库是MySQL

在我的实体(销售)中,有一个类型为
DateTime
Date

我使用以下lambda表达式从该表中获取最新的
TrNo
。但它总是给我
Null
。因为它还比较列的
时间
部分。实际上,我想比较一下列的
日期
部分

db.Sales.OrderByDescending(O => O.Date).Where(O => O.Date == DateTime.Now ).Select(O => O.TrNo).FirstOrDefault();
请帮助我获得正确的代码构建。(我的数据库是MySQL)


谢谢

如果
O.Date
是一个日期,只需将其与
DateTime.Now.Date
进行比较,因为
DateTime.Now
将同时返回日期和时间。如果
O.Date
实际上是一个
DateTime
,只需执行相同的操作,
O.Date.Date==DateTime.Now.Date

如果您只想测试DateTime的日期部分,请尝试此操作

db.Sales.OrderByDescending(O => O.Date).Where(O => O.Date == DateTime.Now.Date ).Select(O => O.TrNo).FirstOrDefault();

DateTime.Now.Date是时间为00:00.000的DateTime,因此您的查询将返回null。我不确定EF是否可以将此表达式转换为sql代码。谢谢,但它抛出,
指定的类型成员“Date”在LINQ to Entities中不受支持。仅支持初始值设定项、实体成员和实体导航属性。
Yea。看起来你是对的。我建议OP看看这个。只需将DateTime值移动到单独的变量中,然后在LINQ查询中使用它