[C#] Entity Framework에서 단일 레코드를 삭제 하시겠습니까?

Entity Framework에라 employ는 단일 키 열로 이름이 지정된 SQL Server 테이블이 ID있습니다.

Entity Framework를 사용하여 테이블에서 단일 레코드를 어떻게 삭제합니까?



답변

먼저 객체를 쿼리 할 필요는 없으며 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();


답변

당신이 사용할 수있는 SingleOrDefault당신의 기준과 일치하는 단일 객체를 얻기 위해, 다음에 그것을 통과 Remove하여 EF 테이블의 방법.

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

if (itemToRemove != null) {
    Context.Employ.Remove(itemToRemove);
    Context.SaveChanges();
}


답변

  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();


답변

Employer employer = context.Employers.First(x => x.EmployerId == 1);

context.Customers.DeleteObject(employer);
context.SaveChanges();


답변

LINQ와 함께 엔티티 프레임 워크를 사용하고 있습니다. 다음 코드가 도움이되었습니다.

1- 여러 레코드

 using (var dbContext = new Chat_ServerEntities())
 {
     var allRec= dbContext.myEntities;
     dbContext.myEntities.RemoveRange(allRec);
     dbContext.SaveChanges();
 }

2- 단일 레코드

 using (var dbContext = new Chat_ServerEntities())
 {
     var singleRec = dbContext.ChatUserConnections.FirstOrDefault( x => x.ID ==1);// object your want to delete
     dbContext.ChatUserConnections.Remove(singleRec);
     dbContext.SaveChanges();
 }


답변

더 일반적인 approuch

public virtual void Delete<T>(int id) where T : BaseEntity, new()
{
    T instance = Activator.CreateInstance<T>();
    instance.Id = id;
    if (dbContext.Entry<T>(entity).State == EntityState.Detached)
    {
        dbContext.Set<T>().Attach(entity);
    }

    dbContext.Set<T>().Remove(entity);
}


답변

Entity Framework 6에서는을 사용할 수 있습니다 Remove. 또한 using연결이 닫혀 있는지 확인하는 것이 좋습니다 .

using (var context = new EmployDbContext())
{
    Employ emp = context.Employ.Where(x => x.Id == id).Single<Employ>();
    context.Employ.Remove(emp);
    context.SaveChanges();
}