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;

  • 相关阅读:
    1,Window安装Docker
    字符串编码
    hive自带derby数据库初始化
    numpy深浅复制
    matplotlib基础学习
    pandas基础学习
    numpy基础学习
    pandas之join、merge
    pandas之索引
    pandas之时间戳
  • 原文地址:https://www.cnblogs.com/cdaq/p/4467583.html
Copyright © 2011-2022 走看看