5

テーブルからレコードを削除しようとしていますが、コードstoreで認識に問題があります。DeleteObject参照があります

using System.Linq;
using System.Data.Entity;
using System.Data.Objects;

しかし、まだ機能していません。を使用MVC 4してVisual Studio 2012います。

public void Delete()
{
    using (var db = new AppContext())
    {
        var query_D = (from b in db.Stores
                   where b.storeID == 1
                   select b).First();

        db.DeleteObject(query_D);
        db.SaveChanges();
    } 
}

前もって感謝します

4

3 に答える 3

10

VS2012 で MVC 4 を使用していて、デフォルトで Entity Framework のバージョンが 5 であることがわかりました。

deleteからの今のやり方EF4

正しい使い方はdeleteこちらEF5

using (var db= new AppContext(ConnectionStr))
{
    try
    {
        con.Configuration.AutoDetectChangesEnabled = false;
        var o = new Store { Id = 1 };
        db.Stores.Attach(o);
        db.Stores.Remove(o);
        db.SaveChanges();
    }
    catch (Exception ex)
    {
        throw new Exception(ex.InnerException.Message);
    }
    finally
    {
        con.Configuration.AutoDetectChangesEnabled = true;
    }
}
于 2013-01-29T13:55:54.063 に答える
8

使うだけ

db.Entry(query_D).State = System.Data.EntityState.Deleted;
于 2013-01-29T13:55:11.520 に答える