0

ここにこの状況があります。2クラス

    public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }

    public List<Phone> Phones { get; set; }

}

public class Phone
{
    public int id { get; set; }
    public int Number { get; set; }
}

個人は、一部の電話ですでにデータベースに保存されています。それでは、電話を編集するとしましょう。電話の現在のリストは次のとおりです。

ID: 1 番号: 1111

ID: 2 番号: 2222

ID: 3 番号: 3333

そして、リストを編集したときに、2 行目を削除して最初の行を更新しました。さて、リストは次のとおりです。

ID: 1 番号: 1212

ID: 3 番号: 3333

-

以下のコマンドは、Person と編集済みの電話を更新します。

context.Person.Update(person)

しかし、削除された電話はどうですか?現在のリストと編集済みのリストを比較して、次のようなことを行うためにどの電話が削除されたかを判断する必要があります

context.Phone.Delete(phone)

私の質問は次のとおりです。もっと自動化されたものはありませんか? 削除された電話をエンティティが検出できませんか?

わかりました!

4

1 に答える 1

0

同じPhoneエンティティが複数の人物に属する場合があります。Personほとんどの場合、すべてのエンティティがデータベースからダウンロードされるわけではないため、EF は必ずしもこれを認識しているとは限りません。したがって、エンティティをやみくもに削除すると、Phone触れてはならない関係/エンティティに影響を与える可能性があります。関連するエンティティを削除し、リレーションシップを一度に更新したい場合は、エンティティだけDeleteを試すことができます。他のエンティティPhoneを呼び出す必要はないと思います。Update

于 2013-06-14T15:10:51.767 に答える