我想使用VS 2015创建基于数据库的实体框架模型。
有一些问题:
1)当我想创建模型时,我收到此警告:
2)当我创建模式时,某些文件会像T4一样生成。
3)生成的类没有数据注释,如:
[EdmEntityTypeAttribute(NamespaceName="SomeModel", Name="tblCode1")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
4)在我们的小组中,有些人拥有VS 2013或2010,他们无法使用此类型号。
如何使用VS 2015创建模型,如VS 2010或2013而不使用T4(仅限2个文件如下)
答案 0 :(得分:9)
简答:
您需要将Code Generation Strategy
的{{1}}属性从“ T4 ”更改为“旧版ObjectContext ”并删除{{1来自Solution Exporer的节点。
答案很长:
以下是所需的步骤:
(1)假设您首先选择“添加 - >新项目 - > ADO.NET实体数据模型 - >数据库中的EF Designer ”。
(2)按照“实体数据模型向导”进行操作。接下来是非常重要。当您进入要求使用EF版本的屏幕时,请确保选择 EF 5.0 ,否则T4模板将是您唯一的选择:
(3)完成向导。对第一个屏幕截图的安全警告说好。项目结构看起来就像是你的第二个截图。
(4)打开设计器中的edmx
文件。查看属性窗口,有一个名为.tt
的属性,默认情况下为“ T4 ”
将属性更改为“旧版ObjectContext ”
(5)从解决方案资源管理器中删除 YourModel.Context.tt 和 YourMdel.tt 节点,您就完成了。
有点无聊,但做你想要的。缺点是你只能使用过时的EF版本,即将推出的EF7将退休edmx
,所以可能是开始考虑转向Code First方法的好时机。但在此之前,希望上述内容有助于保持您当前的流程。
答案 1 :(得分:2)
为了生成“Code first”模型(从数据库开始获取代码优先模型),您还可以使用Code Smith Generator。您可以从POCO类模板开始(或者从NHibernate模板开始,如果需要序列化,IDataErroInfo,INotifyPropertyChanged等实现)并自定义它们非常简单(语法基于ASP)。可能还有一个免费版本。
环顾四周,我发现了一篇文章和一个从SQL Server数据库中提取POCO类的开源工具 http://www.codeproject.com/Articles/892233/POCO-Generator