如何对Linq到SQL自动生成的部分扩展进行编码?

如何对Linq到SQL自动生成的部分扩展进行编码?,linq,linq-to-sql,partial-methods,Linq,Linq To Sql,Partial Methods,我用VS2008SP1Framework3.5SP1创建了一个从Linq到SQLClasees的类,在本例中,我扩展了部分 partial void UpdateMyTable(MyTable instance){ // Business logic // Validation rules, etc. } 我的问题是,当我执行db.SubmitChanges()时,它执行UpdateMyTable并进行验证,但它不更新,我得到以下错误: [Exception: Deliver]

我用VS2008SP1Framework3.5SP1创建了一个从Linq到SQLClasees的类,在本例中,我扩展了部分

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
  • 如果提供此方法,则必须在方法中执行更新

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

尝试MiTabla.OnValidate

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


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

实际上对非英语问题有一个政策: