哪些ORM支持ASP.NET MVC3中基于属性的客户端和服务器端验证?

时间:2011-03-15 02:30:14

标签: c# .net nhibernate orm asp.net-mvc-3

我非常喜欢Entity Frame Code First与MVC3验证集成的方式: http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3.aspx

我的问题是其他ORM可以和MVC3一起使用吗?我对NHibernate特别好奇,因为它似乎是许多MVC 1& 2个站点。是否有任何附加组件或选项可以启用基于属性的验证,该验证在MVC3中同时适用于客户端和服务器端?

编辑: tvanfosson澄清了部分问题,我也想知道类级别的验证如何在其他ORM中运行。他们会自动在 IValidatableObject 上调用验证吗?

例如,我可以在EF CF中使用此类:

public class Person 
{
  [Key]
  public int Id { get; set; }
  [Email]
  public string HomeEmail { get; set;}
}

然后使用DataAnnotationsExtensions NuGet包,我可以运行以下代码(甚至在MVC之外)并得到错误。

using (SiteDB db = new SiteDB()) {
  db.Persons.Add(new Person() { HomeEmail = "Invalid" });
  db.SaveChanges();
}

2 个答案:

答案 0 :(得分:1)

DataAnnotations使用模型绑定器和框架的验证部分。如果您可以使用属性修饰模型,它将与烘焙验证一起使用。我已将它与EF和LINQ2SQL以及仅查看模型一起使用。

答案 1 :(得分:1)

您可以使用:

Linq to sql
Entity Framework
Nhibernate
Fluent Nhibernate

此致