2012-01-19 2 views
6

레코드를 만들 수 있지만 업데이트 및 삭제를 사용하지 못하게하는 EF 엔터티를 만들 수 있습니까? DB에서 레코드를 만들 수있는 코드를 허용하려는 데이터 개체가 있지만 변경하거나 삭제할 수 없습니다. EF 코드의 첫 번째 방법을 사용하고 있습니다.EF Code First 엔티티에서 Update/Delete를 비활성화 할 수 있습니까?

+0

엔티티 추가 만 지원하는 저장소에서 컨텍스트를 캡슐화 할 수 있습니까? –

+0

그것은 옵션 2 였지만 아래에 제공된 변경 추적기를 무시하도록 관리되었습니다. – Darren

답변

6

DbContextSaveChanges 방법을 무시하고이를 방지 할 수 있습니다.

public override int SaveChanges() 
{ 
    foreach (DbEntityEntry entity in this.ChangeTracker.Entries) 
    { 
     if (entity.State == System.Data.EntityState.Modified) 
      return; 
     // more logic, depending on your needs 
    } 

    base.SaveChanges(); 
} 
+0

감사합니다. 이것을 사용하고 unchanges (entity.State = System.Data.EntityState.Unchanged;)로 상태 업데이트/삭제를 변경하고 다른 유형의 변경 사항을 저장할 수 있는지 확인하십시오. – Darren

+0

위에서 언급했듯이 변경 사항이 기록되지 않도록 상태를 변경하지 않고 훌륭하게 작동했습니다. 감사. – Darren

+0

도와 드리겠습니다! 좋은 하루 되세요. – dknaack

관련 문제