EF7 beta8 FromSQL

时间:2015-11-15 13:58:55

标签: c# sql entity-framework

对于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”不是实体模型,它会遇到此错误消息。

错误的:

  

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

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

2 个答案:

答案 0 :(得分:0)

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

EF7 Fetch dynamic data, not bound to DBSet

其他方法是在这里写LINQ

Linq to fetch dynamic data in EF7

答案 1 :(得分:0)

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