【发布时间】:2016-03-14 12:11:30
【问题描述】:
我想使用 VS 2015 创建一个基于数据库的实体框架模型。
有点问题:
1) 当我想创建模型时,我会收到以下警告:
2) 当我创建模式时,会生成一些文件,例如 T4。
3) 生成的类没有像这样的数据注释:
[EdmEntityTypeAttribute(NamespaceName="SomeModel", Name="tblCode1")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
4) 在我们小组中,有些人有 VS 2013 或 2010,他们不能使用这种类型的模型。
如何在没有 T4 的情况下使用 VS 2015(如 VS 2010 或 2013)创建模型(如下所示只有 2 个文件)
【问题讨论】:
-
您是说将代码生成策略更改为 Legacy ObjectContext 吗?不敢相信它会这么简单,但以防万一。
-
详细说明需要重新编码的内容。您正在解析什么语法以及它的外观?我见过 .tt 模板,但从我的角度来看,它有点矫枉过正,构建自己的解析器要容易得多,但是您需要了解一些有关解析器构造(标记化、语义树构造)的基础知识,还需要了解一些语言你想解析。我可以为您编写演示解析器,但需要更深入地了解您在此处解析的内容。
-
是的,这是 ObjectContext API。它曾经是 edmx 的代码生成策略中的“默认”。我不知道在 VS2015 中是否仍然如此(这里没有安装它)。在开始使用新安装的 VS20xx 后,您可能忘记了您和您的同事过去采取的一些步骤,因为我相信自 EF 4.3 以来,DbContext 一直是预设的代码生成策略。此消息是每个人第一次点击离开(不再显示)然后忘记的消息。但现在最重要的一句话:尽一切可能迁移到 DbContext!
-
哦,这个“默认”代码生成策略默认没有被选中。默认选项早就是“None”,实际上不是“none”而是t4。现在谁仍然明白这一点,恭喜!
-
@GertArnold 在 VS2013/2015 中,该选项称为“T4”:) 并且是默认选项。
标签: c# entity-framework