我的 sql 数据库不允许添加相同编号的 2 条记录。如果我尝试使用以前使用的号码创建记录或编辑记录以使用以前使用的号码,它不允许这样做并返回到编辑/创建页面,并在分包合同号码字段旁带有星号。我想为此添加规则违规,以便显示适当的消息。我试着添加这个:
if (db.subcontracts.Count(s => s.subcontract_no == subcontract_no) > 0)
yield return new RuleViolation("Subcontract number already exists", "subcontract_no");
写这篇文章时,我只想到 Create 方法。这里的问题是每次我编辑记录时都会发现违规,即使 subcontract_no 没有更改。所以,我想我需要它来在创建记录时以及在更改 subcontract_no 时进行编辑时找到违规行为。但是,它不能“找到自己”并创建违反规则的行为。我怎样才能做到这一点?