4

我使用 VS 2008 SP1 Framework 3.5 SP1 制作了一个从 Linq 到 SQL Clasees 的类,在这种情况下,我扩展了部分

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
4

2 回答 2

3
  • 如果提供此方法,则必须在方法中执行更新。

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

  • 如果您在分部类中实现 Insert、Update 和 Delete 方法,则 LINQ to SQL 运行时将在调用 SubmitChanges 时调用它们而不是其自己的默认方法。

试试MiTabla.OnValidate

于 2008-09-26T13:53:01.040 回答
1

如果您想实现此方法但不自己进行更新,您可以调用方法 ExecuteDynamicUpdate(item);

同样,分别对 DeleteMyTable 和 InsertMyTable 执行 ExecuteDynamicDelete 和 ExecuteDynamicInsert。

于 2008-09-28T18:28:47.660 回答