2011-01-28 65 views
0

我是MVC的新手,我試圖弄清楚如何在MVC項目中的自動生成的實體中實現業務邏輯。如何在Microsoft MVC2的自動生成實體上實現業務邏輯?

我知道,如果我創建自己的模型類,我可以將[Required]和其他屬性放在字段上,但似乎沒有選項可以在.edmx文件中執行此操作。

有什麼我在這裏失蹤?

我應該創建自己的類,使用實體並將邏輯放在那裏? 似乎應該有辦法讓我少做點工作。

謝謝!

+0

看這裏:http://stackoverflow.com/questions/4619609/what-is-the-best-way-to-add-attributes-to-auto-generated-entities-using-vs2010 – Lazarus 2011-01-28 16:47:02

回答

2

這可以通過在.NET中使用專門爲此目的而實現的buddy-class功能來實現。一旦在.ebmx文件中創建了實體,您就可以創建部分類來陪伴您的實體,這些實體在「朋友類」中定義您的業務規則。

[MetadataType(typeof(ProductMetadata))] 
public partial class Product { 

    internal sealed class ProductMetadata { 
     [DisplayName("Name")] 
     [Required] 
     public string Name { get; set; } 

     [DispayName("Price")] 
     [Required, Range(1,10000)] 
     public decimal Price { get; set; } 

     [DisplayName("Description")] 
     public string Description { get; set; } 
    } 
} 

在上面的例子中,假設你已經在其中具有屬性「名稱」,「價格」和「說明」你的對象上下文定義的「品」字型。只要MetadataTypeAttribute引用的好友類類型具有匹配的屬性名稱,應用於好友類中屬性的屬性將應用於實現類型。

注意:如果buddy類中有任何屬性名稱與實現類型不匹配,您將收到運行時錯誤。您只需在夥伴類中爲您有興趣應用業務規則的屬性創建匹配屬性;所有屬性都是可選的。

+0

非常好,這是正是我所期待的。 – 2011-01-28 17:30:30

相關問題