我以前在VS 2010中使用过实体数据模型,但现在我在VS 2012上遇到了问题。首先,现在在2012年的实体数据模型中有两个扩展名为.tt的新文件。此外,Designer.cs 文件为空,并显示一条如何启用代码生成的消息,但是当我启用代码生成时,它说对象已经存在。
我也缺少 CreateObjectSet();
using (MyEntities entitiesContext = new MyEntities())
{
var entitySet = entitiesContext.CreateObjectSet<T>();
}
不知道为什么,但现在实体上下文没有 .CreateObjectSet();
我想知道是否有人可以澄清正在发生的事情。
默认情况下,VS 2012 中的新实体数据模型使用 T4 模板 (.tt) 文件,而不是以前的自定义工具来生成代码。生成的上下文也基于较新的 DbContext API,而不是 Visual Studio 2010 使用的 ObjectContext API(这就是它没有该方法的原因 - DbContext API 中的等效方法是 Set<T>
)。T4 和 DbContext API 目前都是使用 EF 的推荐方法。
我目前的机器上没有VS 2012,但您可以尝试删除.tt并打开旧一代,如.Desinger.cs.
中所述