当在添加的时候,要判断某一个字段值是唯一的,这个很简单,只需在添加前判断数据库中是否已存在此数据值
但是在编辑的时候就遇到了问题,如果按照添加时的验证,当没有改变要编辑的数据时,此时是无法保存的,因为数据库里已经有了一个了,这是不合理的,这就导致如果只改其他可以重复的数据那么此时也无法修改。
解决方式:因为编辑的时候肯定是有 Id 的数据的 ,因此判断方式为:
判断 满足此 Id
if (id == 0) { return _dc.GetAll().Where(p => p.Name == name && p.SuperiorId == superiorid).ToList().Any(); //添加验证 } else { return _dc.GetAll().Where(p => p.Id == id || (p.Name == name && p.SuperiorId == superiorid)).ToList().Count() == 2; }
原文:https://www.cnblogs.com/wang-min/p/10445607.html