如何在EF 4.1代码中首先使用复杂的sql查询
本文关键字:复杂 查询 sql EF 代码 | 更新日期: 2023-09-27 18:22:31
我们刚刚开始首先使用EF 4.1代码。我有一个类似于以下内容的sql查询:
SELECT * FROM TableA
WHERE DATEDIFF(DAY,GETDATE(), TableA.ExpirationDate == x days)
我不知道如何使用sql查询与EF 4.1代码的第一组函数。像这样的一个功能:
IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
有人有主意吗?
类似这样的东西接近您的查询:
var things = context.TableAEntities
.Where(e => EntityFunctions.DiffDays(DateTime.Now, e.ExpirationDate) == x)
.ToList();
翻译过来就是:
SELECT
[Extent1].[Id] AS [Id],
//... more columns
[Extent1].[ExpirationDate] AS [ExpirationDate]
FROM [dbo].[TableA] AS [Extent1]
WHERE (DATEDIFF (day, SysDateTime(), [Extent1].[ExpirationDate])) = @p__linq__0
SysDateTime()
(在SQL Server中)与GETDATE()
相同,只是具有更高的精度。
尝试
context.Database.SqlQuery<EntityA>("SELECT * FROM TableA
WHERE DATEDIFF(DAY,GETDATE(), TableA.ExpirationDate == x days");