4

VS 2008 SP1 Framework 3.5 SP1を使用して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
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 に答える