3

この記事の理由: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an -asp-net-mvc-application EntityState.Detached を Delete メソッドでチェックしてから Attach し、Update メソッドでチェックしない:

    public virtual void Delete(TEntity entityToDelete)
    {
        if (context.Entry(entityToDelete).State == EntityState.Detached)
        {
            dbSet.Attach(entityToDelete);
        }
        dbSet.Remove(entityToDelete);
    }

    public virtual void Update(TEntity entityToUpdate)
    {
        dbSet.Attach(entityToUpdate);
        context.Entry(entityToUpdate).State = EntityState.Modified;
    }
4

2 に答える 2

2

Mustではなくすべきです。アタッチせずに更新と削除を実行できます。ただし、コードが安全ではなくなり、エラーが発生しやすくなります。

デタッチされたエンティティを削除または更新しようとすると、例外が発生し、それを処理する計画がなかった場合、アプリがクラッシュして動作が停止します...

于 2013-07-22T03:05:50.957 に答える