-1
我目前正在尋找方法來正確檢查我的entitiy框架是否被添加,修改或刪除。以下是我的編碼:檢查實體框架被添加,修改或刪除
int state = 0;
var added = this.ChangeTracker.Entries().Where(e => e.State == EntityState.Added).ToList();
var modified = this.ChangeTracker.Entries().Where(e => e.State == EntityState.Modified).ToList();
var deleted = this.ChangeTracker.Entries().Where(e => e.State == EntityState.Deleted).ToList();
if (added.Count > 0)
state = 1;
if (modified.Count > 0)
state = 2;
if (deleted.Count > 0)
state = 3;
目前它正在工作。我只想知道是否有其他適當的方式來做到這一點。
說實話,我從來沒有見過這種檢查的必要性。如果我懷疑我有未決的更改,則執行SaveChanges()並繼續。 你的問題確實讓我好奇,是什麼讓你看到需要。你能詳細說明一下嗎? 此外,我意識到你的代碼可能不是實際的代碼,而是一個簡化的版本。因此,如果一個條目發生了變化而另一個條目被刪除,會發生什麼?在你的例子中,狀態似乎被覆蓋了。我想你有一個更詳細的狀態跟蹤結構? –
@Streamcap您好Streamcap。其實我在做什麼是我需要記錄我的EF中的變化,並對其進行評論。例如,如果EF添加,評論將是「創建新(某些)」,如果修改它將是「更新(某事)」。現在,只有一個條目可以一次更改。你認爲這是正確的嗎?謝謝 – Farid
@Farid確實有幾種方法可以做到這一點。一種方法(儘管很粗糙)是在插入/更新/刪除時寫入日誌行的數據庫中放置觸發器。另一種是使用日誌框架,以防需要更詳細地檢測更改。我會建議看看Serilog,它是免費的而且功能強大,不需要額外的工作。 –