EF代码生成模板POCO Entity Generator生成的Model.tt中的实体类怎么添加验证,如果直接在每个实体类中添加验证,当数据库更改时,运行自定义工具更新tt文件时,所添加的验证全部没了~~如果直接在tt模版文件中写,没有代码提示功能,也不知道该怎么写~~这个该怎么做比较好,谢谢~
可以利用 MetadataType attribute
比如 自动生成的model 里有个class Apple
public partial class Apple : INotifyPropertyChanging, INotifyPropertyChanged { //自动生成的 properties, methods... }
你可以手动创建 partial class, 内容为空
[MetadataType(typeof(AppleMetadata))] public partial class Apple { }
然后 建另一个 AppleMetadata class, 在其中添加你需要的验证, field 的名字与 原来的Apple class 要一致
public class AppleMetadata { [Required] public decimal Price { get; set; } }
这样重新生成 Apple class 时, 验证还会存在
用 Code-First 模式。
我也觉得Code-First挺好的,可惜最后还是确定Database-First做,能有其他方法吗
最发不要用他们的模板,不灵活。