给定像Person这样的简单类,并带有FirstName,LastName和DOB属性以及Id属性(它是主键)。如何防止首先使用EF代码的逻辑重复?
当我调用我的create action时,我想执行验证以确定我传入的模型是否与FirstName,LastName和DOB属性恰好匹配任何已存在的记录。在这种情况下,我想排除Id属性,因为进入应用程序的模型还没有,并会产生误报。
目前我只是用任何扩展方法是这样的...
if (!context.People.Any(x => x.FirstName == model.FirstName && x.LastName ==
model.LastName && x.DOB == model.DOB))
这肯定的作品,但完全是,好了,不优雅。
当然有更好的方法吗?
您可能可以通过对数据库进行唯一约束来避免这种情况,然后在代码中进行适当的错误处理。如果你想在值持久化之前检查重复项,那么我认为'Any()',虽然不完全优雅,但是完全没问题。 –
[最好的方法来检查对象是否存在于实体框架?](http://stackoverflow.com/questions/1802286/best-way-to-check-if-object-exists-in-entity-framework) –
这不是重复的,你引用的问题的答案是我说我明确想避免的东西 – keithwarren7