2

我有一個LINQ到SQL對象或者如果需要的實體框架對象。從生成的類生成數據註釋

我想爲他們做MVC 2數據註釋,但我無休止地懶惰。

是否有辦法來自動生成數據說明A-LA

[Bind(Include = "Title,Description,EventDate,Address,Country,ContactPhone,Latitude,Longitude")] 
[MetadataType(typeof(Dinner_Validation))] 
public partial class Dinner 
{ 
    public bool IsHostedBy(string userName) 
    { 
     return HostedBy.Equals(userName, StringComparison.InvariantCultureIgnoreCase); 
    } 

    public bool IsUserRegistered(string userName) 
    { 
     return RSVPs.Any(r => r.AttendeeName.Equals(userName,  StringComparison.InvariantCultureIgnoreCase)); 
    } 
} 

public class Dinner_Validation 
{ 
    [Required(ErrorMessage = "Title is required")] 
    [StringLength(50, ErrorMessage = "Title may not be longer than 50 characters")] 
    public string Title { get; set; } 

    [Required(ErrorMessage = "Description is required")] 
    [StringLength(265, ErrorMessage = "Description may not be longer than 256 characters")] 
    public string Description { get; set; } 

    [Required(ErrorMessage = "HostedBy is required")] 
    public string HostedBy { get; set; } 

    [Required(ErrorMessage = "Address is required")] 
    public string Address { get; set; } 

    [Required(ErrorMessage = "Country is required")] 
    public string Country { get; set; } 

    [Required(ErrorMessage = "Phone# is required")] 
    public string ContactPhone { get; set; } 
} 

所以,我沒有做這一切我自己?

+0

這是一個好主意。當你考慮它時,通過設計你的表(LINQ對象),你已經指定了字段長度和NOT NULL? (必需)選項。因此,應該有一種方法可以輕鬆自動生成數據庫結構中的所有元信息,並將其抽入可隨時滾動的DataAnnotations。然後,你可以快速修改/調整它們所需的.. – Aaron 2011-01-03 08:21:13

+0

有一羣人試圖做到這一點:(我不附屬)http://ef4templates.codeplex.com/ – MarkKGreenway 2011-01-25 00:49:54

回答

0

我認爲生成數據註釋是多餘的。相反,我會建議編寫一個關聯的元數據提供程序,它將簡單地導致MVC模型綁定和驗證,以便根據您的類型查看正確的元數據,而不需要數據註釋(或者將補充您可能已經擁有的任何數據註釋)。

There's an example here

0

我爲此從我的Silverlight工具箱中借了一點,但它似乎對VS2010中的MVC3工作得很好。

  1. 編譯您的項目。如果您剛創建實體框架模型,這一點很重要。
  2. 右鍵單擊您的項目。點擊添加/新建項目。
  3. 選擇「域服務類」作爲類型。點擊添加。
  4. 在下拉菜單中選擇您的模型。
  5. 在實體列表中,選擇您需要數據註釋的所有對象。
  6. 選中標記爲「爲元數據生成關聯類」的框。點擊確定。
  7. 您將得到兩個生成的類。只需刪除沒有.metadata的那個。標籤。

應該這樣做。你現在應該有一個元數據類準備添加你的註釋。 (上面使用的域服務類可能與VS2010中的WCF RIA Services工具包一起安裝,對此沒有正面評價,但如果您在可用項列表中沒有此項,則可能是問題所在。)

+0

我沒有得到域服務類選項,即使從http://www.microsoft.com/en-us/download/details.aspx?id=26939安裝WCF RIA Services工具包後 – IsmailS 2012-05-01 16:29:00