219

employという名前の単一のキー列を持つ名前の Entity Framework に SQL Server テーブルがありますID

Entity Framework を使用してテーブルから単一のレコードを削除するにはどうすればよいですか?

4

15 に答える 15

397

最初にオブジェクトを照会する必要はありません。ID によってコンテキストにアタッチできます。このような:

var employer = new Employ { Id = 1 };
ctx.Employ.Attach(employer);
ctx.Employ.Remove(employer);
ctx.SaveChanges();

または、添付されたエントリの状態を削除済みに設定できます。

var employer = new Employ { Id = 1 };
ctx.Entry(employer).State = EntityState.Deleted;
ctx.SaveChanges();
于 2013-07-18T12:37:11.100 に答える
97

を使用SingleOrDefaultして、基準に一致する単一のオブジェクトを取得し、それをRemoveEF テーブルのメソッドに渡すことができます。

var itemToRemove = Context.Employ.SingleOrDefault(x => x.id == 1); //returns a single item.

if (itemToRemove != null) {
    Context.Employ.Remove(itemToRemove);
    Context.SaveChanges();
}
于 2013-07-18T12:24:42.273 に答える
13
  var stud = (from s1 in entities.Students
            where s1.ID== student.ID
            select s1).SingleOrDefault();

  //Delete it from memory
  entities.DeleteObject(stud);
  //Save to database
  entities.SaveChanges();
于 2013-07-18T12:27:34.110 に答える
8
Employer employer = context.Employers.First(x => x.EmployerId == 1);

context.Customers.DeleteObject(employer);
context.SaveChanges();
于 2013-07-18T12:24:54.790 に答える
0
    [HttpPost]
    public JsonResult DeleteCotnact(int id)
    {
        using (MycasedbEntities dbde = new MycasedbEntities())
        {
            Contact rowcontact = (from c in dbde.Contact
                                     where c.Id == id
                                     select c).FirstOrDefault();

            dbde.Contact.Remove(rowcontact);
            dbde.SaveChanges();

            return Json(id);
        }
    }

シンプルかどうかにかかわらず、これについてどう思いますか。これを試すこともできます。

        var productrow = cnn.Product.Find(id);
        cnn.Product.Remove(productrow);
        cnn.SaveChanges();
于 2018-04-18T14:03:07.020 に答える
0

EntityFramework.Plusを使用するオプションがあります。

dbContext.Employ.Where(e => e.Id == 1).Delete();

その他の例はこちらから入手できます

于 2018-08-18T12:07:25.780 に答える