給定像Person這樣的簡單類,並帶有FirstName,LastName和DOB屬性以及Id屬性(它是主鍵)。如何防止首先使用EF代碼的邏輯重複?
當我調用我的create action時,我想執行驗證以確定我傳入的模型是否與FirstName,LastName和DOB屬性恰好匹配任何已存在的記錄。在這種情況下,我想排除Id屬性,因爲進入應用程序的模型還沒有,並會產生誤報。
目前我只是用任何擴展方法是這樣的...
if (!context.People.Any(x => x.FirstName == model.FirstName && x.LastName ==
model.LastName && x.DOB == model.DOB))
這肯定的作品,但完全是,好了,不優雅。
當然有更好的方法嗎?
您可能可以通過對數據庫進行唯一約束來避免這種情況,然後在代碼中進行適當的錯誤處理。如果你想在值持久化之前檢查重複項,那麼我認爲'Any()',雖然不完全優雅,但是完全沒問題。 –
[最好的方法來檢查對象是否存在於實體框架?](http://stackoverflow.com/questions/1802286/best-way-to-check-if-object-exists-in-entity-framework) –
這不是重複的,你引用的問題的答案是我說我明確想避免的東西 – keithwarren7