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;

  • 相关阅读:
    iOS之App Store上架被拒Legal
    iOS之解决崩溃Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
    iOS之延时执行(睡眠)的几种方法
    iOS之UILabel的自动换行
    iOS之开发中一些相关的路径以及获取路径的方法
    iOS之绘制虚线
    iOS之判断手机号码、邮箱格式是否正确
    iOS之计算上次日期距离现在多久, 如 xx 小时前、xx 分钟前等
    iOS之开发中常用的颜色及其对应的RGB值
    method invocation
  • 原文地址:https://www.cnblogs.com/cdaq/p/4467583.html
Copyright © 2011-2022 走看看