不是问题,但我没有博客,我刚刚创建了一个新的亚音速TT文件 这将为亚音阶类自动生成元数据类,以便您可以 在使用dataAnnotation和CreateForModel等时跳过一些工作
所以第一步是使用以下
修改ActiveRecord.TTusing System.ComponentModel;
using System.Data.Common;
using System.ComponentModel.DataAnnotations;
然后在类名的生成之上,我们需要引用我们的元数据 像这样:
[MetadataType(typeof(<#=tbl.ClassName#>MetaData))]
public partial class <#=tbl.ClassName#>: IActiveRecord
那些为ActiveRecord.tt完成的一切
现在您的MetaGenerator TT位于下方,请注意我的包含是针对MySql的 您需要修改此行以考虑您的数据库类型
<#@ include file="MySQL.ttinclude" #>
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace <#=Namespace #>
{
<#
var tables = LoadTables();
foreach(Table tbl in tables)
{
if(!ExcludeTables.Contains(tbl.Name))
{
#>
public class <#=tbl.ClassName#>MetaData
{
<# foreach(Column col in tbl.Columns)
{
if (tbl.ClassName == col.CleanName)
{
col.CleanName += "X";
} #>
[DisplayName("<#=col.CleanName #>: ")]
<# if(String.IsNullOrEmpty(CheckNullable(col))) { #>
[Required(ErrorMessage = "<#=col.CleanName #> is a required element.")] <# }
#>
public <#=col.SysType #><#=CheckNullable(col)#> <#=col.CleanName #> { get;set; }
<#
}
#>
}
<# }
} #>
}
我添加了一个小支票以查看该项目是否可以为空,如果没有,那么我正在添加 必要的元素。
现在这并不出色,但对于大型数据库来说,它会说相当多的工作 使用editorFor等是一种很好的方法,可以在不考虑页面的情况下删除页面。
为创建或编辑创建强类型视图时,我引用了 MetaData类而不是亚音阶类,一切都是飞机航行
将此添加到您自己的自定义编辑的CodeTemplates中,您真的不需要做太多 在创建母版页后,在Html方面。
无论如何,请确保它对一个人有用!