代码改变世界

Entity FrameWork 笔记(三)POCO

2010-05-23 10:22  Henry Cui  阅读(2670)  评论(7编辑  收藏  举报

在前面两篇文章中,我们看过了Entity FramwWork中的基本查询,在Entity FrameWork 4中提供了POCO的方式,POCO的全称是:Plain Old CLR Object,即提供了对传统CLR对象的支持。

DataBase

首先我们来看数据库里面的两张表:

DataBaseDiagram

Model

在这里我们就像添加普通的实体一样:

image

EDMX

我们新增一个edmx文件,选择刚才的两个表:

image

生成完成后我们需要注意的一点是,将Custom Tool设置成空,意思呢就是不需要生成代码:

image

image

自定义Context

我们来自定义Context:

 public class ProjectContext:ObjectContext
    {
        public ProjectContext()
            : base("name=HJRightPlatEntities",
                "HJRightPlatEntities")
        {
            _Projects = this.CreateObjectSet<Projects>();
            _Modules = this.CreateObjectSet<Modules>();
        }

        public ObjectSet<Projects> Projects {
            get {
                return _Projects;
            }
        }

        public ObjectSet<Modules> Modules
        {
            get
            {
                return _Modules;
            }
        }

        private ObjectSet<Projects> _Projects;
        private ObjectSet<Modules> _Modules;

    }

我们来写个测试的方法:

        [TestMethod()]
        public void ProjectsTest()
        {
            using (ProjectContext ctx = new ProjectContext())
            {
                var pros = from pro in ctx.Projects
                           where pro.ProjectName.Contains("报文消息查询系统")
                           select pro;
                Assert.AreEqual(1, pros.Count());
            }
        }

测试结果:

image

总结

在编写时要注意的是,编写的实体要跟在edmx中CSDL里面相对应,如果不同时,我们可以去修改实体,或则修改edmx中的CSDL跟Mappings。如果用过NHibernate的朋友,会感觉到现在的这个edmx就像一个mapping文件一样,不过还是有很大的差别的。

作者:Henllyee Cui
出处: http://henllyee.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。