2012-06-03 66 views
0

我已經下載了VS2010中的MVCScaffolding nuget包。我試圖從我的模型中檢索[DisplayName數據註釋以便在index.cs.t4模板中使用它。在T4模板中檢索[DisplayName] DataAnnotation

此頁面OneToMany Relationships向我展示瞭如何修改索引模板以提供一個鏈接,該鏈接將我帶到子對象的控制器索引。在這種情況下,從電子郵件到電子郵件收件人。問題是我已經打電話給我的控制器emailcontroller和emailrecipientscontroller,而不是他們較不描述的表名稱,我寧願隱藏反正。我已經同樣裝飾了t4模板使用的元數據對象(tbl_My_unwieldytablename_emailMetadata)和這個顯示名稱(emailrecipients)dataannotation,我希望我可以修改模板以替換關係的名稱以使用顯示名稱,這是我的控制器名稱,例如

[MetadataType(typeof(tbl_My_unwieldytablename_emailMetadata))] 
public partial class tbl_My_unwieldytablename_email 
{ 
    internal sealed class tbl_My_unwieldytablename_emailMetadata 
    { 
     [ScaffoldColumn(false)] 
     [Required(ErrorMessage="id is required")] 
    public Int32 id { get; set; } 

     [DataType(DataType.Date)] 
    public DateTime send_date { get; set; } 

     [StringLength(255)] 
    public String title { get; set; } 

     [DataType(DataType.MultilineText)] 
    public String message { get; set; } 

     [StringLength(50)] 
    public String author { get; set; } 

     [StringLength(80)] 
     [DataType(DataType.EmailAddress)] 
    public String author_email { get; set; } 

     [DataType(DataType.MultilineText)] 
    public String attachment { get; set; } 

     [DataType(DataType.Date)] 
    public DateTime created_date { get; set; } 

    public Int32 batches { get; set; } 

     [DataType(DataType.Date)] 
    public DateTime complete_date { get; set; } 

    [DisplayName("emailrecipients")] 
    public EntityCollection<tbl_My_unwieldytablename_email_recipients> tbl_My_unwieldytablename_email_recipients { get; set; } 

    } 

乾杯 添

回答

0
[Table("tbl_My_unwieldytablename_email")] 
Public Class Email 

[Table("tbl_My_unwieldytablename_email_recipients")] 
Public Class EmailRecipients 

如果你的類映射到數據庫表

+0

IM困惑,您認爲我應該這樣做或什麼它將幫助?你指的是控制器類嗎? – Tim

+0

它應該將笨拙的表名映射到您的類名稱。既然你已經有了數據庫中的表,如果你在類的上面添加數據屬性表(「tablename」),那麼mvc將會映射它們,這樣你的類就可以被命名爲不太笨拙的東西。例如'[Table(「tbl_My_unwieldytablename_email」)] public partial class Email'這也會自動讓mvc知道使用emailcontroller。 – Mike

+0

嗨邁克,不知道這將適合我的情況,我的元數據類有實際的表名稱,但我用友好的名字裝飾的關係。它是我想修改的腳手架視圖(而不是腳手架元數據類)的映射。如果我可以找到一種方法來裝飾檢測和裝飾外鍵字段,如在一對多的頁面中我把一個鏈接到上面然後這將排序的東西。但是現在我有點難以忍受t4模板語法。 – Tim