日期:2014-05-20  浏览次数:20860 次

dbml文件更新的问题
用O/R设计器设计好数据库之后,在生成的实体类中加入了一些验证代码。
现在有一个数据库表要新加几个字段,问题是无论我把表删了,重新拖进去,还是直接在设计界面中的相应表上新加属性。
在保存过之后,我原来添加的那些验证代码都会被删除掉,也就是其他表也被全部更新了。

我如何只更新局部呢?除了直接去修改.cs中的代码,有没有什么好的方法呢?

------解决方案--------------------
使用自定义特性在数据模型中自定义数据字段验证:

http://msdn.microsoft.com/zh-cn/library/cc668224.aspx

利用 partial class 可以将 metadata 描述分离到另一个 cs 文件里去。
例如:


C# code

 [MetadataType(typeof(LogOnModelMetadata))]
 public partial class LogOnModel
 {
     class LogOnModelMetadata
     {
         [Required]
         [Display(Name = "User name")]
         public string UserName { get; set; }

         [Required]
         [DataType(DataType.Password)]
         [Display(Name = "Password")]
         public string Password { get; set; }

         [Display(Name = "Remember me?")]
         public bool RememberMe { get; set; }
     }

 }