我已根据下一个链接的模板预先生成了视图:
http://blogs.msdn.com/b/adonet/archive/2008/06/20/how-to-use-a-t4-template-for-view-generation.aspx
我需要改进Entity Framework 5.0,但是如果我将模式替换为:
stringBuilder.Replace(“http://schemas.microsoft.com/ado/2008/09/mapping/cs”,“http://schemas.microsoft.com/ado/2009/11/mapping/cs”); stringBuilder.Replace(“http://schemas.microsoft.com/ado/2008/09/edm”,“http://schemas.microsoft.com/ado/2009/11/edm”); stringBuilder.Replace( “http://schemas.microsoft.com/ado/2008/10/edmx”, “http://schemas.microsoft.com/ado/2009/11/edmx”); stringBuilder.Replace(“http://schemas.microsoft.com/ado/2009/02/edm/ssdl”,“http://schemas.microsoft.com/ado/2009/11/edm/ssdl”);
我仍然有以下错误:
警告3默认目标实体框架版本需要 edmx架构版本2.0.0.0或更低版本。指定的架构是版本 3.0.0.0。要避免此警告,请明确指定目标实体框架版本。您可以使用EdmGen.exe执行此操作 命令行工具与targetVersion选项,或通过包含 调用GenerateCode时的targetEntityFrameworkVersion参数 方法
如何解决此问题?使用模板?
使用模板向EdmGen 添加/targetversion:4.5相当于什么?
答案 0 :(得分:3)
我找到了解决问题的方法......
以下链接提供了主要帮助:
http://blog.3d-logic.com/2012/05/28/entity-framework-code-first-and-pre-generated-views/
moozzyk说:
2012年8月5日晚上11:51使用Visual Studio 2012和EF5时,我确实看到了这一点。目前,解决方法是编辑>模板。从以下位置更改第70行: var errors = viewGenerator.GenerateViews(mappingItemCollection,writer).ToList(); 至: var errors = viewGenerator.GenerateViews(mappingItemCollection,writer,> EntityFrameworkVersions.Version3 )。ToList(); 很抱歉给您带来不便。
我不得不以类似的方式修改我的代码,来自:
IList errors = viewGenerator.GenerateViews(mappingItems,writer);
要:
IList errors = viewGenerator.GenerateViews(mappingItems,writer, EntityFrameworkVersions.Version3 );
之后,没有任何警告或错误。