gpt4 book ai didi

c# - X 已经包含 EntityFramework 的定义 Y? (简单数据库)

转载 作者:可可西里 更新时间:2023-11-01 08:04:28 27 4
gpt4 key购买 nike

我的 MS SQL 数据库中有 3 个表,我已将 EntityFramework(最新)添加到我导入了这 3 个表的项目中。第一个问题是没有构建任何实体,所以我将“代码生成策略”从 None 更改为 Default

构建后我得到

X Already Contains a definition for Y

关于实体的所有属性。

当仔细观察时,它在 MainModel.Designer.cs 中生成了一个部分 ex Users.cs 和一个部分 User

为什么会生成User.cs?我在另一个项目中有类似的设置并且 EF 设置了相同的设置,没有 User.cs?

Edit1:我可以看到一个不同之处,那就是在失败的项目中设置为 False 的使用强空间类型,但是不可能将其设置为 true(灰色)?

最佳答案

您应该为您的 .edmx 文件使用 None 代码生成策略。或者删除生成模型实体和上下文的 MainModel.ttMainModel.Context.tt 模板。

如果您使用Default 代码生成策略,那么实体和上下文将生成到MainModel.Designer.cs 文件中。那将是标准实体,继承自 EntityObject,context 将继承自 ObjectContext。使用 Entity Framework 5,我们可以生成 POCO 实体。整个生成是在 T4 模板中完成的,它生成上下文,继承自 DbContext,以及没有一些基本类型(好吧,只有对象)的 POCO 实体。

当您在 edmx 设计器中同时拥有模板和启用代码生成时,将生成两组实体。这就是名称冲突的原因。

关于c# - X 已经包含 EntityFramework 的定义 Y? (简单数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com