c# - 在没有 t4 代码生成器的情况下创建 Entity Framework (如 vs 2010)

标签 c# entity-framework

我想使用 VS 2015 创建一个基于数据库的 Entity Framework 模型。

有一些问题:

1) 当我想创建模型时,我收到此警告:

enter image description here

2) 当我创建模式时,生成了一些文件,如 T4。

enter image description here

3) 生成的类没有像这样的数据注释:

[EdmEntityTypeAttribute(NamespaceName="SomeModel", Name="tblCode1")]
[Serializable()]
[DataContractAttribute(IsReference=true)]

4) 在我们组里有些人有 VS 2013 或 2010,他们不能使用这种类型的模型。

我如何在没有 T4 的情况下使用 VS 2015 像 VS 2010 或 2013 创建模型(如下所示只有 2 个文件)

enter image description here

最佳答案

简答:

您需要将 edmxCode Generation Strategy 属性从“T4”更改为“Legacy ObjectContext"并从 Solution Exporer 中删除 .tt 节点。

长答案:

以下是所需的步骤:

(1) 假设您首先选择“添加 -> 新项 -> ADO.NET 实体数据模型 -> 来自数据库的 EF 设计器”。

(2) 按照“实体数据模型向导”操作。接下来是非常重要。当您到达询问您要使用的 EF 版本的屏幕时,请确保选择 EF 5.0,否则 T4 模板将是您唯一的选择:

enter image description here

(3) 完成向导。对第一个屏幕截图等安全警告说“确定”。项目结构将类似于您的第二个屏幕截图。

(4) 在设计器中打开edmx文件。查看属性窗口,有一个名为 Code Generation Strategy 的属性,默认情况下为“T4

enter image description here

将属性更改为“Legacy ObjectContext

(5) 从解决方案资源管理器中删除 YourModel.Context.ttYourMdel.tt 节点,您就完成了。

有点无聊,但做你想做的事。缺点是您只能使用过时的 EF 版本,而即将推出的 EF7 将完全淘汰 edmx,因此现在可能是开始考虑切换到 Code First 方法的好时机。但在那之前,希望以上内容能帮助您保持当前流程。

关于c# - 在没有 t4 代码生成器的情况下创建 Entity Framework (如 vs 2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987219/

相关文章:

c# - 不小心删除了 __MigrationHistory 中的记录?

.net - 如何修复 System.Data.Edm.EdmEntityType 没有键

asp.net-mvc - 没有存储库和 UoW 模式的 ASP.NET MVC 5 中的服务层和项目结构

c# - 如何查看 C# 库代码(如 Java 中的 grepcode)?

c# - 为 ASP.NET GridView 中的所有空单元格着色

c# - WebApi.Owin 中的 SuppressDefaultHostAuthentication 也抑制 webapi 外部的身份验证

c# - Mysql Entity Framework 异常

c# - 使用来自 MVC Controller 的复杂对象对 API 端点的 Http GET 调用

c# - 从列表中选择值

c# - 有没有办法通过反射或其他方式获取实体 ID 字段的名称?