在预生成视图中升级EF:默认目标实体框架版本需要edmx架构版本2或更低版本

时间:2013-07-15 12:39:37

标签: entity-framework entity-framework-5 t4 ef-model-first

我已根据下一个链接的模板预先生成了视图:

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相当于什么?

1 个答案:

答案 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 );

之后,没有任何警告或错误。