我想知道在实体集中验证视图字段值是唯一的最佳方法是什么:在更新持久层之前或之后? 涉及的db字段具有唯一约束,其表映射到EF模型。 我在实体集中看到了两种唯一值验证方法:
使用第一种方法,我需要查询数据库以检查唯一性,因此任何视图更新都需要数据库选择和数据库更新。
使用第二种方法,不需要额外选择,但很难识别错误类型和违规字段。
我更喜欢方法2,但确定插入/更新是否因唯一约束而失败的问题迫使我选择方法1.
还是有另一种方式吗?
答案 0 :(得分:0)
检查唯一约束的首选和推荐方法是通过自定义DataAnnotation属性从UI。使用这种方法你必须编写一些代码,但这就是所有网站为检查唯一性约束所做的工作。然而,asp.net mvc 3提供开箱即用的RemoteAttribute来检查唯一性约束。我建议使用第一种方法,因为一些微小的ajax调用不会对性能产生显着影响,只要你以良好的方式组织它。