EF4.0 POCO之继承

最近一直在看关于EF4.0的POCO的一些文章,自己也想做一些POCO的测试,正好看到风车车Entity Framework 4 第一篇 POCO双鱼座POCO真那么重要么?,对于风车车EF4系列的第一篇POCO中就使用Code Only来讲解有点不太适应,呵呵,一下子就进入了没有edmx的时代了,过度太快了:)。看了双鱼座大侠的文章,感觉是真正的面向对象的设计,并且从正文中进入了这篇文章:体验ADO.NET Entity Framework的继承,不管POCO是否重要(个人比较倾向于使用POCO),既然EF4.0支持POCO,那么我们就来测试一下吧,我直接使用了《体验ADO.NET Entity Framework的继承》文中例子(希望双鱼座大侠不要怪罪)。

使用vs2010 Beta2打开《体验》文中的例子,完成升级向导,我们还是使用“传统”一点的方式来体验POCO,右键点击InheritanceDemoModel.edmx选择属性,删除Custom tool,如下图所示:

image

新建如下实体类,其他代码略掉,请参考文后的代码附件:

public class Privilege
    {
        private IList<Role> roles = new List<Role>();
        public int Id { get; set; }
        public string Handle { get; set; }
        public string Display { get; set; }
        public IList<Role> Roles { get { return roles; } set { roles = value; } }
    }  

还有DemoEntities,因为删除Custom Tool之后,不能自动生成代码,所以需要手写代码:

public class DemoEntities : ObjectContext
    {
        public DemoEntities()
            : base("name=DemoEntities", "DemoEntities")  
        {
            _roles = CreateObjectSet<Role>();
            _privileges = CreateObjectSet<Privilege>();
            _userOrGroups = CreateObjectSet<UserOrGroup>();
            }

        public ObjectSet<Role> Roles
        {
            get 
            { 
                return _roles; 
            }
        }
        private ObjectSet<Role> _roles;

        public ObjectSet<Privilege> Privileges
        {
            get
            {
                return _privileges;
            }
        }
        private ObjectSet<Privilege> _privileges;
        public ObjectSet<UserOrGroup> UserOrGroups
        {
            get
            {
                return _userOrGroups;
            }
        }
        private ObjectSet<UserOrGroup> _userOrGroups;
    
        public void AddToUserOrGroups(UserOrGroup userOrGroup)
        {
            _userOrGroups.AddObject(userOrGroup);
        }

        public void AddToRoles(Role role)
        {
            _roles.AddObject(role);
        }

        public void AddToPrivileges(Privilege privilege)
        {
            _privileges.AddObject(privilege);
        }
    }

单元测试代码不用作修改,直接运行单元测试,全部通过。

 本文源代码下载,注意修改单元测试项目下的App.Config中的连接字符串

转载于:https://www.cnblogs.com/tubo/archive/2010/01/08/1642045.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值