2011-02-07 33 views
0

我想確保所有的產品名稱都是唯一的,所以我試圖做到以下幾點。 但它在lambda表達式中導致無限循環。在asp.net動態日期,如何使用部分方法來驗證字段aganist數據庫中的數據

public partial class Product 
{ 
    partial void OnProductNameChanging(string value) 
    { 
    using(var ctx = new MyEntityContext()){ 
     var val = value; 
     var item = ctx.Products.Where(o=>o.ProductName == val).FirstOrDefault(); 
     if(item != null) 
     throw new ValidationException("Product Name existed."); 
    } 
    } 
} 

我使用動態數據和實體框架的asp.net 4.0。

回答

0

我對EF不太熟悉,但你應該得到變更集和比較值。也就是說,對於產品實體以及變更集具有更新的情況,將現有值與NEW進行比較,並在發生重複時更改新的值。

下面是如何在EF得到變更: http://davidhayden.com/blog/dave/archive/2005/11/16/2570.aspx

比較和值必須在任何context.SubmitChanges前()被調用;

希望這會有所幫助。

1

爲什麼不在數據庫級別設置它並在產品名稱已經存在的情況下處理exeption?

相關問題