【发布时间】:2011-11-28 07:36:21
【问题描述】:
我选择了 LINQ to SQL 作为 ASP .NET MVC3 项目的 ORM 框架。在我需要在注册表单上添加额外的字段“确认密码”之前,一切都很好。正如在关于 SO 的一个问题中提到的那样(不幸的是,我目前找不到它),最好使用接口将生成的 LINQ 扩展到具有验证属性的 SQL 类,而不是使用另一个类来存储验证属性。所以我们开始:
public interface IRegTry
{
[Required]
[Email]
string EMail { get; set; }
[Required]
[StringLength(100, ErrorMessage = "Should not exceed 100 symbols")]
string FirstName { get; set; }
[Required]
string Password { get; set; }
}
[MetadataType(typeof(IRegTry))]
public partial class RegTry : IRegTry { }
RegTry类是LINQ to SQL基于数据库实体生成的类。
在视图中我们有确认密码字段,它应该确保两个输入的密码彼此相等。
所以我们在这里添加它:
public class RegTryViewModel : RegTry
{
[Required]
[EqualTo("Password", ErrorMessage = "You should type two identical passwords to continue")]
public string ConfirmPassword { get; set; }
}
视图是具有RegTryViewModel 模型的强类型视图。
我只是在这里要求确保我做的一切都是正确的。让我感到不舒服的是,我在IRegTry 接口和RegTryViewModel 类之间传播了验证逻辑。但是我不能将ConfirmPassword 属性添加到IRegTry 接口,因为基本SQL 到LINQ 类根本没有它。
提前谢谢各位!
【问题讨论】:
标签: c# asp.net .net asp.net-mvc linq-to-sql