【发布时间】:2011-11-12 01:57:27
【问题描述】:
给定一个像 Person 这样的简单类,具有 FirstName、LastName 和 DOB 属性以及 Id 属性(这是主键)。
当我调用我的创建操作时,我想执行验证以确定我传入的具有 FirstName、LastName 和 DOB 属性的模型是否恰好匹配任何已经存在的记录。在这种情况下,我想排除 Id 属性,因为进入应用程序的模型还没有,并且会产生误报。
目前我只是像这样使用 Any 扩展方法...
if (!context.People.Any(x => x.FirstName == model.FirstName && x.LastName ==
model.LastName && x.DOB == model.DOB))
这当然有效,但完全不优雅。
肯定有更好的方法吗?
【问题讨论】:
-
您可以通过对数据库的独特约束来避免此类事情,然后在代码中进行适当的错误处理。如果您想在保留值之前检查重复项,那么我认为
Any()虽然不是很优雅,但完全可以。 -
这不是重复的,你提到的问题的答案是我说我明确想要避免的
标签: c# asp.net-mvc ef-code-first