2012-01-19 29 views
6

Có thể tạo một thực thể EF cho phép bạn tạo bản ghi nhưng tắt cập nhật và xóa. Tôi có đối tượng dữ liệu mà tôi muốn cho phép mã để tạo các bản ghi trong DB nhưng chúng không được phép thay đổi hoặc xóa chúng. Tôi đang sử dụng cách tiếp cận đầu tiên của mã EF.Có thể tắt Cập nhật/Xóa trên EF Code Các thực thể đầu tiên không?

+0

Không thể gói gọn ngữ cảnh của bạn trong Kho lưu trữ chỉ hỗ trợ thêm đối tượng? –

+0

Đó là tùy chọn 2 nhưng được quản lý để ghi đè trình theo dõi thay đổi như được cung cấp bên dưới. – Darren

Trả lời

6

Có, bạn có thể ghi đè phương thức SaveChanges của DbContext và có thể ngăn điều đó.

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

Cảm ơn vì điều này. Sẽ sử dụng điều này và thử thay đổi trạng thái để cập nhật/deleet thành không thay đổi (entity.State = System.Data.EntityState.Unchanged;) và xem điều này có cho phép các kiểu thay đổi khác được lưu hay không. – Darren

+0

Như đã đề cập ở trên, nó hoạt động rất tốt với việc thay đổi trạng thái thành không thay đổi nên các thay đổi không bao giờ được ghi lại. Cảm ơn. – Darren

+0

Rất vui được trợ giúp! Chúc một ngày tốt lành. – dknaack

Các vấn đề liên quan