可以';在实体框架中,不能使用SQL查询来获取数据
本文关键字:SQL 查询 数据 获取 不能 实体 框架 可以 | 更新日期: 2023-09-27 18:22:25
我正试图使用以下SQL查询从数据库中获取前两列数据:
SELECT Id, DomainUrl
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY Id ) AS RowNum, Id, DomainUrl
FROM SiteDatas
) AS RowConstrainedResult
WHERE RowNum >= 1
AND RowNum <= 10
ORDER BY RowNum
我使用实体框架并为行传递参数,以便以后可以通过ajax将其用作加载时滚动函数。然而,当我到达线路时,我遇到了一个错误:
var stores = db.SiteDatas.SqlQuery(SQL, parameters).ToList();
这是一个实体命令执行异常,说明数据读取器与指定的模型(我的数据库)不兼容。类型为"Robots"的成员(在我调用的列之后的下一列)在数据读取器中没有同名的对应列。
我该如何将前两列序列化为json?
Robots
列。
您仍然可以使用数据库。SqlQuery<T>返回您的数据,前提是您指定了返回类型。返回类型不必是实体类型,只要具有与结果集相同的列名即可。
假设db
是DbContext
实例,您可以写:
public class MyResults
{
public int ID{get;set;}
public string DomainUrl {get;set;}
}
...
var stores = db.Database.SqlQuery<MyResults>(SQL, parameters).ToList();