近来学习ASP.NET MVC ,一直在看韩迎龙(Kencery)ASP.NET MVC+EF框架+EasyUI实现权限管理。在第九节(TT模板的学习)卡住了,作者使用EF5.0做数据源,而我使用的EF6.0,在代码生成时引用的ttinclude包不一样。EF5使用的是EF.Utility.CS.ttinclude,而EF6使用的是EF6.Utility.CS.ttinclude,两者部分代码完全不一样,使用方法也有很大区别,博客园,度娘,谷歌,都找了,找不到一篇关于EF6.Utility.CS.ttinclude这个文件的使用或内容介绍的文章,无奈只得自己摸索,无意间发现.edmx文件的添加代码生成项生成的文件接近我要生成的代码,所以借用此代码并修改成我想要的代码.不太理解,仅代码贴上,以供以后使用.(本篇获取表名,并将所有表名生成在一个文件中)。

这是设置部分(里面的const string inputFile = @"..\\DataModel\\DataModel.edmx"; 部分需要改成自己的数据源.

  • <#@ template language="C#" debug="false" hostspecific="true"#>
  • <#@ include file="EF6.Utility.CS.ttinclude"#><#@ output extension=".cs"#>
  •   <#const string inputFile = @"..\\DataModel\\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.Empty;
  •     }#>
  • 相关文章:

    • 2021-09-16
    • 2021-09-08
    • 2021-09-25
    • 2021-06-25
    • 2022-12-23
    • 2021-09-12
    • 2021-06-02
    • 2022-02-08
    猜你喜欢
    • 2022-12-23
    • 2022-12-23
    • 2022-12-23
    • 2021-08-12
    • 2021-11-19
    • 2021-07-24
    • 2022-12-23
    相关资源
    相似解决方案