irf*_*csd 7 c# linq entity-framework entity-framework-6
我试图通过MVC 5/Entity Framework 6应用程序中的Linq表达式使用DateDiff SQL语法获取今天添加的所有记录.DateDiff函数抛出运行时错误
实际上我想用以下linq WHERE子句来解析linq动态
.Where(p => DbFunctions.DiffDays(p.added_date, DateTime.Now) == 0)
Run Code Online (Sandbox Code Playgroud)
为了获取今天添加的记录.我正在使用的示例代码如下所示
var _list = new vsk_error_log();
using (var entities = new vskdbEntities())
{
_list = entities.vsk_error_log
//.Where("DateDiff(DAY,added_date,getdate())=0")
.Where(p => DbFunctions.DiffDays(p.added_date, DateTime.Now) == 0)
.ToList();
}
return _list;
Run Code Online (Sandbox Code Playgroud)
关于Linq.Dynamic表达式 - 如何编写where子句
Ala*_*oud 25
使用 DbFunctions
.Where(p => DbFunctions.DiffDays(p.AddedDate, DateTime.Now) == 0)
Run Code Online (Sandbox Code Playgroud)
编辑:
如果要动态调用它,则需要修改Dynamic LINQ的代码.
predefinedTypes
并typeof(DbFunctions)
在最后添加.现在你可以这样做了:
.Where("DbFunctions.DiffDays(AddedDate, DateTime.Now) = 0")
Run Code Online (Sandbox Code Playgroud)
它将被翻译成这个SQL:
WHERE 0 = (DATEDIFF (day, [Extent1].[AddedDate], SysDateTime()))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21653 次 |
最近记录: |