我的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的新手,我不确定这是否是最佳方式。
我希望得到任何改进的确认或建议。
唐朗廷