在以下方法或属性之间调用是不明确的:'EntitiesLan.EntitiesLan()'和& # 39
本文关键字:EntitiesLan 方法 属性 之间 不明确 调用 | 更新日期: 2023-09-27 18:15:53
我有下面的代码,不知道为什么会抛出这个错误。
using (var context = new EntitiesPlesk())
{
/////Some Code
}
using (var context = new EntitiesLan()) // Error Line
{
/////Some Code
}
我使用.sdf Database
文件的edmx模型(EntitiesLan)请帮助我,我应该改变,以摆脱这个错误....谢谢!
问题不在于你的代码,问题实际上是你试图在EntityFramework
的更高版本中重新生成edmx
。一种可能性是,你可能会在VS2013中修改VS2010的旧项目。
在以前版本的实体框架中,使用EF设计器创建的模型将生成从ObjectContext派生的上下文和从EntityObject派生的实体类。
从EF4.1开始,我们建议使用代码生成模板来生成从DbContext和POCO实体类派生的上下文。
在Visual Studio 2012中,你得到DbContext代码默认生成的所有新模型与EF设计器。现有模型将继续生成基于ObjectContext的代码,除非您决定切换到基于DbContext的代码生成器。
来源:MSDN
<解决方案/strong>
Sergey Berezovskiy在这篇文章中描述了解决方案。
您应该为您的.edmx
文件使用None代码生成策略。或者删除MainModel.tt
和MainModel.Context.tt
模板,它们生成模型实体和上下文。
如果您使用默认代码生成策略,则实体和上下文将生成到MainModel.Designer.cs
文件中。这将是标准实体,继承自EntityObject
,上下文将继承自ObjectContext
。对于Entity Framework 5
,我们有POCO
实体生成。整个生成是在T4
模板中完成的,它生成上下文,继承自DbContext
和POCO
实体,没有一些基本类型(好吧,只有对象)。
当您在edmx设计器中同时拥有模板和启用的代码生成时,将生成两组实体。这就是名字冲突的原因。