簡體   English   中英

在實體框架中測試預先存在的記錄的最佳方法是什么?

[英]What's the best way to test for a preexisting record in Entity Framework?

我的MVC項目使用實體框架來處理與數據庫的通信。

Web應用程序需要能夠在調用SaveChanges方法之前驗證用戶通過Web表單提供的值在數據庫中是否存在。 數據庫表上的索引可防止重復值。 我不想依賴SQL異常來發現新值存在問題。

我所做的是使用Linq語句檢索具有提交值的ContactKey屬性的任何記錄。 然后我使用實體的Count屬性。 如果它返回0,那么我假設新值是唯一的。 這是代碼片段:

// newKey is the value provided by user
var existing = from c in db.Contacts where c.ContactKey == newKey select c;
if (existing.Count()==0)
{
    isUnique = true;
}

雖然這似乎按預期工作,但我是Linq的新手,我不確定這是否是最好的方法。

我將不勝感激任何確認或改進建議。

唐朗哈姆

使用Enumerable.Any

bool ifExist = db.Contacts.Any(r=> r.ContactKey == newKey);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM