我非常喜欢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();
}
答案 0 :(得分:1)
DataAnnotations使用模型绑定器和框架的验证部分。如果您可以使用属性修饰模型,它将与烘焙验证一起使用。我已将它与EF和LINQ2SQL以及仅查看模型一起使用。
答案 1 :(得分:1)
您可以使用:
Linq to sql
Entity Framework
Nhibernate
Fluent Nhibernate
此致