0

私がデバッグしている MVC/EF コードの山があり、他の誰かが Java から翻訳したものです。

コードの 1 つのスニペットは次のようになります。

public ActionResult Index()
    {
        using (var context = new Models.FooEntities())
        {
            var exp = context.Expenses.FirstOrDefault(e => e.Id == 17);

            if (exp != null)
            {
                context.Expenses.DeleteObject(exp);
                context.SaveChanges();
            }
        }

        return Content("Deleted");
    }

単純。右?ID 17 のエンティティ Expense を削除する必要があります。

ただし、 を呼び出すと、メッセージとともにSaveChangesanが発生します。InvalidOperationException"The object is in a detached state. This operation cannot be performed on an ObjectStateEntry when the object is detached."

今、私はメッセージを理解し、驚いています。なぜなら、問題のエンティティは文脈から決して切り離されていないからです。少なくとも上のスニペットで見たものから。

目に見える以上のものがあるかもしれませんが、これ以上選択肢がない場合のオプションとして検討します。わかります。

4

3 に答える 3

0

次のような変更を試すことができます。

if (exp != null)
            {
                context.Expenses.Attach(ex);
                context.Expenses.DeleteObject(exp);
                context.SaveChanges();
            }
于 2013-06-23T13:45:17.620 に答える