EF7 beta8 FromSQL

本文关键字:FromSQL beta8 EF7 | 更新日期: 2023-09-27 18:22:02

对于EF7 FromSQL解析sql查询,获取实体列表。

var accounts = _context.Set<Account>().FromSql("SELECT TOP 10 * FROM Account WITH  
(NOLOCK)").ToList();

上面的内容将返回实体列表,但要满足特定条件。

var report = _context.Set<AccountReport>().FromSql("SELECT a.Id, a.Username, p.Item,
p.Quantity FROM Account AS a WITH (NOLOCK) INNER JOIN Purchase AS p WITH (NOLOCK) ON 
p.AccountId = a.Id WHERE p.CreatedOn BETWEEN '2015-11-01' AND '2015-12-01').ToList();

模型"AccountReport"不是实体模型,它将遇到此错误消息。

错误

EntityFramework.Core.dll中出现Microsoft.Data.Entity.Metadata.ModelItemNotFoundException,但未在用户代码中处理

其他信息:找不到实体类型"AccountReport"。请确保已将实体类型添加到模型中。

EF7 beta8 FromSQL

当您尝试获取未绑定到DBSet的数据时,这应该会有所帮助。

EF7获取动态数据,不绑定到DBSet

另一种方法是像这里一样编写LINQ

Linq在EF7 中获取动态数据

在select查询中,您必须选择AccountReport的所有不可为null的列,因为select查询已分配给实体AccountReport。