我想使用 VS 2015 创建一个基于数据库的 Entity Framework 模型。
有一些问题:
1) 当我想创建模型时,我收到此警告:
2) 当我创建模式时,生成了一些文件,如 T4。
3) 生成的类没有像这样的数据注释:
[EdmEntityTypeAttribute(NamespaceName="SomeModel", Name="tblCode1")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
4) 在我们组里有些人有 VS 2013 或 2010,他们不能使用这种类型的模型。
我如何在没有 T4 的情况下使用 VS 2015 像 VS 2010 或 2013 创建模型(如下所示只有 2 个文件)
最佳答案
简答:
您需要将 edmx
的 Code Generation Strategy
属性从“T4”更改为“Legacy ObjectContext"并从 Solution Exporer 中删除 .tt
节点。
长答案:
以下是所需的步骤:
(1) 假设您首先选择“添加 -> 新项 -> ADO.NET 实体数据模型 -> 来自数据库的 EF 设计器”。
(2) 按照“实体数据模型向导”操作。接下来是非常重要。当您到达询问您要使用的 EF 版本的屏幕时,请确保选择 EF 5.0,否则 T4 模板将是您唯一的选择:
(3) 完成向导。对第一个屏幕截图等安全警告说“确定”。项目结构将类似于您的第二个屏幕截图。
(4) 在设计器中打开edmx
文件。查看属性窗口,有一个名为 Code Generation Strategy
的属性,默认情况下为“T4”
将属性更改为“Legacy ObjectContext”
(5) 从解决方案资源管理器中删除 YourModel.Context.tt 和 YourMdel.tt 节点,您就完成了。
有点无聊,但做你想做的事。缺点是您只能使用过时的 EF 版本,而即将推出的 EF7 将完全淘汰 edmx
,因此现在可能是开始考虑切换到 Code First 方法的好时机。但在那之前,希望以上内容能帮助您保持当前流程。
关于c# - 在没有 t4 代码生成器的情况下创建 Entity Framework (如 vs 2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987219/