MVC.net + subsônico auto gerar classes MetaData do TT

Não é uma pergunta, mas eu não tenho um blog e acabei de criar um novo arquivo TT subsônico que gerará as classes de metadados automaticamente para as classes subsônicas, para que você possa pular algum trabalho ao usar dataAnnotation e CreateForModel etc.

portanto, o primeiro passo é alterar o seu ActiveRecord.TT com o seguinte

using System.ComponentModel; 
using System.Data.Common; 
using System.ComponentModel.DataAnnotations;

Acima da geração do nome da classe, precisamos fazer uma referência aos nossos metadados da seguinte forma:

[MetadataType(typeof(<#=tbl.ClassName#>MetaData))]
public partial class <#=tbl.ClassName#>: IActiveRecord

isso é tudo concluído para o ActiveRecord.tt

agora seu MetaGenerator TT está abaixo, observe que minha inclusão é para MySql, você precisará alterar esta linha para contabilizar seu tipo de banco de dados

<#@ 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; }  
<#    
}   
#>  
}  
<# }  
} #>   
}  

Eu adicionei uma pequena verificação para ver se o item é anulável ou não; caso contrário, estou adicionando um elemento necessário.

agora isso não é brilhante, mas diria um pouco de trabalho para um banco de dados grande e o uso do editor.

Ao criar uma visualização de tipo forte para uma criação ou edição, faço referência à classe MetaData em vez de à classe subsônica e tudo é planado.

adicione isso ao seu próprio CodeTemplates editado personalizado e você realmente não precisará fazer muito do lado HTML, uma vez criada a página mestre.

de qualquer maneira desfrute, tenho certeza de que seria útil para uma pessoa!

questionAnswers(1)

yourAnswerToTheQuestion