0

データベースには多対多の関係があるため、TableA、TableB、TableABの3つのテーブルがあります。TableABには、tableAの主キーとtableBの主キーのみがあります。

データベースからedmxを作成するとき、tableABのエンティティがありません。tableABのレジスタを削除したいのですが、tableAとtableBのレジスタは削除しません。

自己追跡エンティティを使用してこの操作を行うにはどうすればよいですか?

次のオプションがあります。

myContext.tableA.Attach(myTableARecord);
myTableARecord.TableBRecord.Remove(myTableARecord.myTableBRecord[0]);
miContexto.SaveChanges();

これは機能します。

しかし、attachの代わりにapplyChangesを使用すると、機能しません。STEのapplyChangesとコンテキストのAttachメソッドの違いはどれですか?

ありがとう。

4

1 に答える 1

1

アタッチは、ObjectGraphから切断されたエンティティを取得し、それをObjectGraphにアタッチします。

AcceptChangesは、エンティティ内の変更をコミットします。

于 2012-09-07T19:48:27.043 に答える