X已经包含带有EntityFramework的定义Y? (简单数据库)
我的MS SQL数据库中有3个表,我已经在我导入这3个表的项目中添加了EntityFramework(最新)。 第一个问题是没有构建任何实体,因此我将“代码生成策略”从“ None
”更改为“ Default
。
建成后我得到了
X已经包含Y的定义
在实体的所有属性上。
仔细观察它是否在Users.cs
生成了部分ex Users.cs
和一个部分User
in?
为什么要生成User.cs
? 我在另一个项目中有类似的设置,EF设置相同的设置,没有User.cs
?
Edit1 :我可以看到一个不同的东西,那就是在失败的项目中使用强空间类型设置为False,但是不能将它设置为true(灰色)?
您应该为.edmx文件使用None
代码生成策略。 或者删除MainModel.tt
和MainModel.Context.tt
模板,这些模板生成模型实体和上下文。
如果使用Default
代码生成策略,则将在MainModel.Designer.cs
文件中生成实体和上下文。 那将是标准实体,inheritance自EntityObject
,上下文将inheritanceObjectContext
。 使用Entity Framework 5,我们可以生成POCO实体。 整个生DbContext
在T4模板中完成,这些模板生成上下文,inheritance自DbContext
,而POCO实体没有一些基类型(嗯,仅对象)。
如果在edmx设计器中同时生成模板和启用代码,则将生成两组实体。 这就是你有名字冲突的原因。
- 右键单击实体模型。
- 转到属性并删除“自定义工具”中的默认名称。
- 在model.tt和model.context中分配edmx
- 构建并执行它您将免于错误。