求教EntityFramework 6.0 TT模板的使用,该怎么处理 - .NET Framework当前位置:& &&&求教EntityFramework 6.0 TT模板的使用,该怎么处理求教EntityFramework 6.0 TT模板的使用,该怎么处理&&网友分享于:&&浏览:0次求教EntityFramework 6.0 TT模板的使用用EF.Utility.CS.ttinclude我按照这样写代码的话,会报错.
@&template&language="C#"&debug="false"&hostspecific="true"#&
@&include&file="EF6.Utility.CS.ttinclude"#&@
&output&extension=".cs"#&
const&string&inputFile&=&@"DataModel.edmx";
var&textTransform&=&DynamicTextTransformation.Create(this);
var&code&=&new&CodeGenerationTools(this);
var&ef&=&new&MetadataTools(this);
var&typeMapper&=&new&TypeMapper(code,&ef,&textTransform.Errors);
var&loader&=&new&EdmMetadataLoader(textTransform.Host,&textTransform.Errors);
var&itemCollection&=&loader.CreateEdmItemCollection(inputFile);
var&modelNamespace&=&loader.GetModelNamespace(inputFile);
var&codeStringGenerator&=&new&CodeStringGenerator(code,&typeMapper,&ef);
var&container&=&itemCollection.OfType&EntityContainer&().FirstOrDefault();
if&(container&==&null)
&&&&return&string.E
//使用TT模板生成代码的片段
using&System.Collections.G
using&System.L
using&System.T
using&System.Threading.T
..........................................
.................................
报4个错如下
1.未能找到类型或命名空间名称“TypeMapper”(是否缺少&using&指令或程序集引用?)
2.未能找到类型或命名空间名称“CodeStringGenerator”(是否缺少&using&指令或程序集引用?)
3.非静态字段、方法或属性“System.Data.Entity.Core.Metadata.Edm.ItemCollection.GetItems&T&()”要求对象引用
4.正在编译转换:&当前上下文中不存在名称“ArgumentNotNull”
如果使用EF.Utility.CS.ttinclude而不使用EF6.Utility.CS.ttinclude&这样写的话.可以正常编译但是有个警告.
@&template&debug="false"&hostspecific="true"&language="C#"&
@&include&file="EF.Utility.CS.ttinclude"#&&&//引进TT模板的命名空间
@&output&extension=".cs"&
&CodeGenerationTools&code&=&new&CodeGenerationTools(this);
MetadataLoader&loader&=&new&MetadataLoader(this);
CodeRegion®ion&=&new&CodeRegion(this,&1);
MetadataTools&ef&=&new&MetadataTools(this);
string&inputFile&=&@"DataModel.edmx";
EdmItemCollection&ItemCollection&=&loader.CreateEdmItemCollection(inputFile);
string&namespaceName&=&code.VsNamespaceSuggestion();
EntityFrameworkTemplateFileManager&fileManager&=&EntityFrameworkTemplateFileManager.Create(this);
//使用TT模板生成代码的片段
using&System.Collections.G
using&System.L
using&System.T
using&System.Threading.T
............................
.........................................
警告内容如下(原因是DataModel.edmx默认使用的是EF6.Utility.CS.ttinclude,所以警告版本不对):
1.正在运行转换:&输入文件似乎使用了此模板所不支持的架构版本。此可能会导致编译错误。请使用“添加新的生成项”以添加更新的模板。
所以我想除去这个警告&把EF.Utility.CS.ttinclude换成EF6.Utility.CS.ttinclude&改用EF6的TT模板.
请各位不吝赐教.------解决思路----------------------打开模型浏览器,&在空白地方右键,&添加代码生成器..
12345678910
12345678910
12345678910 上一篇:没有了下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有