EF Codefirst验证独特属性?

Pau*_*aul 9 entity-framework code-first

对如何有效地验证CodeFirst模型的给定属性是唯一的感到好奇.典型示例是成员的用户名或显示名称.

传统上,我可以通过在数据库中设置唯一约束,或者通过在尝试插入操作期间执行查找来执行此操作.我知道如何在生成后在DB本身中手动添加这些东西,只是想知道是否有办法将其作为框架提供的模式映射的一部分.

更新 我发现我可以覆盖DbContext上的ValidateEntity方法,这在概念上允许我进行查找然后使对象无效以防止保存.我仍然很想知道是否有一种方法可以在数据库中应用唯一约束或类似约束

Mor*_*avi 6

Code First(和一般的EF)仍然本身不支持唯一约束.在这篇文章中,我展示了一种创建它们的方法,同时您的数据库是由Code First创建的(通过自定义初始化程序类中的SQLCommand方法),但它与自己手动创建它并没有什么不同.另一种方式是ValidateEntity你建议的,但我仍然会在数据库上创建唯一的约束.