首页 新闻 会员 周边

EF代码生成模板POCO Entity Generator

0
悬赏园豆:30 [已解决问题] 解决于 2012-07-07 09:28

EF代码生成模板POCO Entity Generator生成的Model.tt中的实体类怎么添加验证,如果直接在每个实体类中添加验证,当数据库更改时,运行自定义工具更新tt文件时,所添加的验证全部没了~~如果直接在tt模版文件中写,没有代码提示功能,也不知道该怎么写~~这个该怎么做比较好,谢谢~

何以笙箫的主页 何以笙箫 | 初学一级 | 园豆:41
提问于:2012-07-05 17:20
< >
分享
最佳答案
0

可以利用 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 时, 验证还会存在

收获园豆:20
gunsmoke | 老鸟四级 |园豆:3592 | 2012-07-06 06:19
其他回答(2)
0

用 Code-First 模式。

收获园豆:5
Launcher | 园豆:45045 (高人七级) | 2012-07-05 17:57

我也觉得Code-First挺好的,可惜最后还是确定Database-First做,能有其他方法吗

支持(0) 反对(0) 何以笙箫 | 园豆:41 (初学一级) | 2012-07-05 20:18
0

最发不要用他们的模板,不灵活。

收获园豆:5
jerry-Tom | 园豆:4077 (老鸟四级) | 2012-07-06 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册