2013-02-25 54 views
1

我有一個使用實體框架和Code First方法的基本MVC應用程序。 它包含了產品型號:非標識主鍵驗證

public class Product 
{ 
     [Key] 
     [Column("prodCode")] 
     [DatabaseGenerated(DatabaseGeneratedOption.None)] 
     [Required(ErrorMessage = "A Product Code is required.")] 
     public string ProductCode { get; set; } 

     [Column("prodName")] 
     [Required(ErrorMessage = "A Name is required.")] 
     public string Name { get; set; } 
} 

產品代碼是不認同主鍵。

如果在插入或修改產品時密鑰不存在,我應該在哪裏放置邏輯來驗證。我該如何將驗證信息發送回視圖?

回答

2

因爲我可以看到你正在使用MVC(基於標籤在那裏),我會告訴你在業務邏輯中進行驗證(由你的控制器調用一個返回bool的方法),因爲你在這種情況下,需要一個數據庫連接來進行實際檢查。將驗證消息發送回查看很簡單:如果方法中的驗證失敗,它會將錯誤返回給控制器,然後讓控制器向您的ViewData集合中添加內容並向您的視圖中添加一行以顯示這個值當ViewData包含那個特定的鍵時。

+1

這種類型的邏輯確實屬於業務邏輯層,而不屬於控制器。 – Dismissile 2013-02-25 15:13:16

+0

非常真實。編輯。 – IronMan84 2013-02-25 15:15:22

+0

非常感謝!沒有想到'ViewData'部分。 – 2013-02-25 16:31:11