2008-09-26 58 views
4

我做了一個類從LINQ到SQL Clasees用VS 2008 SP1 Framework 3.5 SP1中,在這種情況下,我伸出部分如何編寫Linq to SQL自動生成的部分擴展?

partial void UpdateMyTable(MyTable instance){ 
    // Business logic 
    // Validation rules, etc. 
} 

我的問題是,當我執行db.SubmitChanges(),它執行UpdateMyTable和品牌該驗證,但它不更新,我得到這個錯誤:

[Exception: Deliver] 
    System.Data.Linq.ChangeProcessor.SendOnValidate(MetaType type, TrackedObject item, ChangeAction changeAction) +197 
    System.Data.Linq.ChangeProcessor.ValidateAll(IEnumerable`1 list) +255 
    System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) +76 
    System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +331 
    System.Data.Linq.DataContext.SubmitChanges() +19 
+7

其實在非英語問題上有一項政策:http://blog.stackoverflow.com/2009/07/non-english-question-policy/ – 2009-10-06 16:10:45

回答

3
  • ,如果你提供這個方法,你必須在方法執行更新。

http://msdn.microsoft.com/en-us/library/bb882671.aspx

  • 如果實現插入,更新和刪除方法在部分類中,LINQ到SQL運行時會打電話給他們它自己默認的方法,而不是時的SubmitChanges是調用。

嘗試MiTabla.OnValidate

1

如果要實現這個方法而不是做自己,你做的方法調用ExecuteDynamicUpdate(項目)的更新;

分別爲DeleteMyTable和InsertMyTable分別執行ExecuteDynamicDelete和ExecuteDynamicInsert。