1

我的 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 的新手,不确定这是否是最好的方法。

我将不胜感激任何确认或改进建议。

唐朗廷酒店

4

1 回答 1

4

利用Enumerable.Any

bool ifExist = db.Contacts.Any(r=> r.ContactKey == newKey);
于 2013-08-22T15:39:07.063 回答