什么';是在实体框架中测试预先存在的记录的最佳方式

本文关键字:存在 记录 方式 最佳 测试 框架 实体 什么 | 更新日期: 2023-09-27 18:28:43

我的MVC项目使用实体框架来处理与数据库的通信。

在调用SaveChanges方法之前,web应用程序需要能够验证用户通过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;
}

虽然这似乎是按计划进行的,但我对林克来说是个新手,不确定这是否是最好的方式。

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

唐朗汉姆

什么';是在实体框架中测试预先存在的记录的最佳方式

使用Enumerable.Any

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