我有一个linq到sql对象或者是否有必要的Entity Framework对象。
我想为他们做MVC 2数据注释,但我无休止地懒惰。
有没有办法自动生成数据注释a-la
[Bind(Include = "Title,Description,EventDate,Address,Country,ContactPhone,Latitude,Longitude")]
[MetadataType(typeof(Dinner_Validation))]
public partial class Dinner
{
public bool IsHostedBy(string userName)
{
return HostedBy.Equals(userName, StringComparison.InvariantCultureIgnoreCase);
}
public bool IsUserRegistered(string userName)
{
return RSVPs.Any(r => r.AttendeeName.Equals(userName, StringComparison.InvariantCultureIgnoreCase));
}
}
public class Dinner_Validation
{
[Required(ErrorMessage = "Title is required")]
[StringLength(50, ErrorMessage = "Title may not be longer than 50 characters")]
public string Title { get; set; }
[Required(ErrorMessage = "Description is required")]
[StringLength(265, ErrorMessage = "Description may not be longer than 256 characters")]
public string Description { get; set; }
[Required(ErrorMessage = "HostedBy is required")]
public string HostedBy { get; set; }
[Required(ErrorMessage = "Address is required")]
public string Address { get; set; }
[Required(ErrorMessage = "Country is required")]
public string Country { get; set; }
[Required(ErrorMessage = "Phone# is required")]
public string ContactPhone { get; set; }
}
所以我自己不必全部完成这项工作?
答案 0 :(得分:0)
我认为生成数据注释是多余的。
相反,我建议编写一个关联的元数据提供程序,它只会导致MVC模型绑定和验证,以查看类型的正确元数据,而根本不需要数据注释(或者将补充您可能已经拥有的任何数据注释) 。
答案 1 :(得分:0)
我从我的Silverlight工具箱中借了一点,但它似乎对VS2010中的MVC3没问题。
应该这样做。您现在应该准备好元数据类来添加注释。 (上面使用的域服务类可能与VS2010中的WCF RIA Services工具包一起安装。对此没有好评,但如果你的可用项目列表中没有这个,那可能就是问题了。)