NFine框架的T4模板
阅读目录 1.前言
2.NFine.Domain.Entity
3.NFine.Domain.IRepository 4.NFine.Repository 5.NFine.Mapping 6.NFine.Application 7.DbHelper.ttinclude 8.ModelAuto.ttinclude 模板在此下载。 回到顶部 1.前言
前段时间在网上看到一个开源框架很好的。开源:ASP.NET MVC+EF6+Bootstrap开发框架,写代码就是比较比较麻烦,分层比较多,对于我这种偷懒的人就想到了写一个T4模板。不了解框架的可以先去看一下这个开源的框架。
一起有5个层,也就是意味着每次数据库添加一张表,就需要写这5个类。 回到顶部
2.NFine.Domain.Entity 复制代码
<#@ template debug=\<#@ output extension=\
<#@ assembly name=\<#@ assembly name=\
<#@ assembly name=\<#@ assembly name=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\
<#@ import namespace=\
<#@ import namespace=\<#@ import namespace=\
<#@ include file=\ #>
//------------------------------------------------------------------------------ // <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> // 此代码由T4模板自动生成
// 生成时间 <#=DateTime.Now.ToString(\枫伶忆
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
// QQ:549387177
// <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> //------------------------------------------------------------------------------ <#
var tableName=config.TableName.Replace(\ #>
using System;
namespace NFine.Domain.Entity.SystemManage {
///
/// <#=tableName#> ///
public class <#=tableName#>:IEntity<<#=tableName#>>, ICreationAudited, IDeleteAudited, IModificationAudited {
<# foreach(DbColumn column in DbHelper.GetDbColumns(config.ConnectionString, config.DbDatabase, config.TableName)){#>
public <#= column.CSharpType#><# if(column.CommonType.IsValueType && column.IsNullable){#>?<#}#> <#=column.ColumnName#> { get; set; } <#}#> } }
复制代码 回到顶部
3.NFine.Domain.IRepository 复制代码
<#@ template debug=\<#@ output extension=\
<#@ assembly name=\<#@ assembly name=\
<#@ assembly name=\<#@ assembly name=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\
<#@ import namespace=\
<#@ import namespace=\<#@ import namespace=\
<#@ include file=\ #> //------------------------------------------------------------------------------ // <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> // 此代码由T4模板自动生成
// 生成时间 <#=DateTime.Now.ToString(\枫伶忆
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
// QQ:549387177
// <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> //------------------------------------------------------------------------------ <#
var tableName=config.TableName.Replace(\ var entity=config.TableName.Replace(\ #>
using NFine.Data;
using NFine.Domain.Entity.SystemManage; using System;
using System.Collections.Generic; using System.Linq; using System.Text;
using System.Threading.Tasks;
namespace NFine.Domain.IRepository.SystemManage {
///
/// <#=tableName#> ///
public interface I<#=tableName#>:IRepositoryBase<<#=entity#>> {
} }
复制代码
回到顶部
4.NFine.Repository
复制代码
<#@ template debug=\<#@ output extension=\
<#@ assembly name=\<#@ assembly name=\
<#@ assembly name=\<#@ assembly name=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\
<#@ import namespace=\
<#@ import namespace=\<#@ import namespace=\
<#@ include file=\ #> //------------------------------------------------------------------------------
// <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> // 此代码由T4模板自动生成
// 生成时间 <#=DateTime.Now.ToString(\枫伶忆
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
// QQ:549387177
// <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> //------------------------------------------------------------------------------ <#
var tableName=config.TableName.Replace(\ var entity=config.TableName.Replace(\ #>
using NFine.Data;
using NFine.Domain.Entity.SystemManage;
using NFine.Domain.IRepository.SystemManage; using System;
using System.Collections.Generic; using System.Linq; using System.Text;
using System.Threading.Tasks;
namespace NFine.Repository.SystemManage {
///
/// <#=tableName#> ///
public class <#=tableName#>:RepositoryBase<<#=entity#>>,I<#=tableName#> {
} }
复制代码
回到顶部
5.NFine.Mapping 复制代码
<#@ template debug=\<#@ output extension=\
<#@ assembly name=\<#@ assembly name=\
<#@ assembly name=\<#@ assembly name=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\<#@ import namespace=\
<#@ import namespace=\
<#@ import namespace=\<#@ import namespace=\
<#@ include file=\ #> //------------------------------------------------------------------------------ // <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> // 此代码由T4模板自动生成
// 生成时间 <#=DateTime.Now.ToString(\枫伶忆
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
// QQ:549387177
// <博客园-枫伶忆 http://www.cnblogs.com/fenglingyi/> //------------------------------------------------------------------------------ <#
var dbTableName=config.TableName;
var tableName=config.TableName.Replace(\ var entity=config.TableName.Replace(\
var list= DbHelper.GetDbColumns(config.ConnectionString, config.TableName);
var pk = DbHelper.GetPrimaryKey(list); #>
using NFine.Domain.Entity.SystemManage; using System.Data.Entity.ModelConfiguration; namespace NFine.Mapping.SystemManage {
///
/// <#=tableName#> ///
public class <#=tableName#>:EntityTypeConfiguration<<#=entity#>> {
public <#=tableName#>() {
this.ToTable(\ this.HasKey(t=>t.<#=pk#>); } } }
复制代码
config.DbDatabase,