我正在尝试进行自定义验证[IsUnique]。检查属性值是否唯一并返回正确的消息。
这是我的代码,但这只适用于指定的类,是否可以通过元数据来获取正确的类?
if (sum < 0)
我的自定义验证:
public class ArticleMetaData
{
[Required(AllowEmptyStrings = false)]
[IsUnique("Name")]
public String Name{ get; set; }
}
这个想法只是使用注释[isUnique],方法将带有注释的类,并搜索相应的实体。
答案 0 :(得分:1)
我认为最好的方法是让数据库完成它的工作。
在数据库中创建约束以防止两篇文章具有相同的名称(或者您需要的任何唯一性)。然后,当用户创建新文章或使用现有文章名称更新现有文章时,数据库将引发异常。抓住该异常,让用户知道这个问题。
答案 1 :(得分:0)
如果有通用属性会很好,但是不支持这些属性。但是,您可以尝试使用Set
的{{1}}方法,该方法将实体类型作为参数。要查询非通用DbContext
,您可以使用DbSet
库(可以从NuGet添加它)。它允许使用字符串谓词查询System.Linq.Dynamic
。这是一个例子:
DbSet