EF4 POCO 树形结构实体的创建

来源:互联网 发布:任务管理器修复软件 编辑:程序博客网 时间:2024/05/21 22:41

最近在学 EF4 POCO的应用, 感觉对我们开发人员来说是个非常的好东东, 不仅提高开发效率, 更能适应经常变化的项目需求。 

一般的实体创建没什么大问题, 但树形结构实体的创建就要做些动手的活了。 

例如:

 public class Category
    {
        public int Id { get; set; }
        public string Description { get; set; }
        public int? ParentId { get; set; }
        public bool? Editable { get; set; }
        [ForeignKey("ParentId")]
        public virtual ICollection<Category> Children { get; set; }
    }

Children上设置了一个ForeignKey的属性,在生成数据表的时候会生成相应的外键约束, 这样在插入数据时就有问题了,如果表中一开始没有任何数据,则受此约束的影响会报错。好吧, 那我就先在数据库中手动插入一条数据做为根, 报错,则 删除外键约束,再试, 成功!

如果仅仅是把外键约束删除, 在插入数据时还是会报错, 这个错误不是数据库报的,而是EF框架代码报的, 由于设置了ForeignKey属性, 框架代码回去检查是否存在外键约束的值, 所有必须手动加入一条根数据。

万事开头难, 解决了开头,后面就好办了!!

原创粉丝点击