【发布时间】:2014-05-27 01:13:45
【问题描述】:
我之前使用的是EF Power Tools,其中包含ReverseEngineerCodeFirst的选项,并且正在切换到EntityFramework Reverse POCO Generator。
实施:
using (var db = new DbContext())
{
var user = db.Users
.Include("MembershipType")
.FirstOrDefault(u => u.UserName == userName);
. . .
}
在使用 POCO 生成器时,我现在在 .Include(...) 行上遇到错误:
'System.Data.Entity.IDbSet' 不包含对 'Include' 并且没有扩展方法 'Include' 接受第一个参数 可以找到“System.Data.Entity.IDbSet”类型的(你是 缺少 using 指令或程序集引用?)
在生成的上下文(和 IContext)中:
DbSet<User> Users { get; set; } // Users
在上下文 tt 模板中,我将 IDbSet 的实例更改为 DbSet,这解决了问题,但我很好奇为什么如果 IDbSet 是 DbSet 的接口,为什么不IDbSet工作?
【问题讨论】:
-
我计划从生成器中删除 IDbSet 并改用 DbSet。见efreversepoco.codeplex.com/workitem/89
-
我现在使用 DbSet 并从生成器中删除了接口 IDbSet 的使用。所以你应该可以使用你原来的
.Include代码。
标签: c# entity-framework c#-4.0 poco texttemplate