3

重複の可能性:
IDbSet.AddとDbEntityEntry.State = EntityState.Addedの違いは何ですか?

DbSet.Add(entity)entity.State = EntityState.Addedの違いは何ですか?両方を使用してエンティティをDbContextに追加する例がいくつかありますが、どちらが優先されるかはわかりません。

「切り離された」状態のテストをいくつか見て、リポジトリの実装でどちらを使用するかを決定しました。

    public void Add(T entity)
    {
        var entry = DbContext.Entry(entity);
        if (entry.State == EntityState.Detached)
        {
            DbSet.Add(entity);
        }
        else
        {
            entry.State = EntityState.Added;
        }
    }

誰かアイデア?ありがとう!

4

1 に答える 1

2

これらのオプションはどちらも同じメソッド(つまり、ObjectContextのAddObject)を呼び出しているため、どちらのオプションにも違いはありません。

于 2012-11-25T07:06:26.730 に答える