zoukankan      html  css  js  c++  java
  • t4模板的认识

    1
    输出类
    <#=codeStringGenerator.EntityClassOpening(entity)#>

    public string EntityClassOpening(EntityType entity)
    {
    return string.Format(
    CultureInfo.InvariantCulture,
    "{0} {1}partial class {2}View{3}",// public partial class sysFunction
    Accessibility.ForType(entity),
    _code.SpaceAfter(_code.AbstractOption(entity)),
    _code.Escape(entity),
    _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
    }

    2 构造函数

    public <#=code.Escape(entity)#>()
    {
    <#
    foreach (var edmProperty in propertiesWithDefaultValues)
    {
    #>
    this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>;
    <#
    }

    foreach (var navigationProperty in collectionNavigationProperties)
    {
    #>
    this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName
    (navigationProperty.ToEndMember.GetEntityType())#>>();
    <#
    }

    foreach (var complexProperty in complexProperties)
    {
    #>
    this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>();
    <#
    }
    #>
    }

    3 命名空间
    <#=codeStringGenerator.UsingDirectives(inHeader: false)#>

    using Model;


    /// <summary>
    /// 数据层
    /// 成东
    /// </summary>

    <#=codeStringGenerator.EntityClassOpening(entity)#>


    4生成属性

    <#=codeStringGenerator.EntityClassOpening(entity)#>
    {

    #region 此表的特殊操作

    #endregion


    <#
    var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity);
    var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity);
    var complexProperties = typeMapper.GetComplexProperties(entity);

    if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any())
    {
    #>

    <#
    }

    var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
    foreach (var edmProperty in simpleProperties)
    {
    #>
    <#=codeStringGenerator.Property(edmProperty)#>
    <#
    }
    }

    if (complexProperties.Any())
    {
    #>

    <#
    foreach(var complexProperty in complexProperties)
    {
    #>
    <#=codeStringGenerator.Property(complexProperty)#>
    <#
    }
    }

    var navigationProperties = typeMapper.GetNavigationProperties(entity);
    if (navigationProperties.Any())
    {
    #>

    <#
    foreach (var navigationProperty in navigationProperties)
    {
    #>
    <#=codeStringGenerator.NavigationProperty(navigationProperty)#>
    <#
    }
    }
    #>


    }


    4 生成引用
    <#=codeStringGenerator.UsingDirectives(inHeader: false)#>
    下面我们可以自己加别的引用
    using System;

  • 相关阅读:
    激活函数
    第五章 Odoo 12开发之导入、导出以及模块数据
    第四章 Odoo 12 开发之模块继承
    第三章 Odoo 12 开发之创建第一个 Odoo 应用
    第二章 Odoo 12开发之开发环境准备
    第一章 使用开发者模式快速入门 Odoo 12
    【linux之路】常用的命令
    【python之路46】内置函数2,是【python之路18】的补充
    【python之路45】tornado的用法 (三)
    【python之路44】tornado的用法 (二)
  • 原文地址:https://www.cnblogs.com/cdaq/p/4467583.html
Copyright © 2011-2022 走看看