zoukankan      html  css  js  c++  java
  • EF之POCO应用系列2——示例入门

     上个系列主要是对什么是POCO做了简单的介绍,对POCO大概概念不了解的可以点这里查看系列一的内容。本系列开始对

    POCO的使用,通过简单示例快速入门,所用的数据库是Northwind数据库

    第1步 - 创建模型,关闭默认代码生成

    1、打开VS2010创建一个类库,将工程命名为NorthwindModel,该工程忽略数据库持久化与对EF依赖。

    2、新建一个类库,命名为“NorthwindData”,引用“System.date.Entity",以及添加对NorthwindModel项目的依赖。

    3、添加ADO。NET data model到NorthwindData工程中,将项目命名为"Northwind.edmx "如下图:

     

    4、通过“ 从数据库中创建”为“Northwind”数据库创建模型。

    5、选择select Categories 和 Products两个表。

    6、选择Northwind.edmx 属性,将“自定义工具”中的内容清空,去掉自动生成代码。如下图;

    接下来,我们将编写POCO实体。

    第二步:编写POCO实体代码

        在NorthwindModel工程中添加Category.cs和Product.cs两个类,这两个类的代码如下:

        public class Category
        {
            public int CategoryID { get; set; }
            public string CategoryName { get; set; }
            public string Description { get; set; }
            public byte[] Picture { get; set; }
            public List<Product> Products { get; set; }
        }

    在这个类中包含了"product"集合类型属性,下面将定义product类

    public class Product
        {
            public int ProductID { get; set; }
            public string ProductName { get; set; }
            public int SupplierID { get; set; }
            public string QuantityPerUnit { get; set; }
            public decimal UnitPrice { get; set; }
            public Int16 UnitsInStock { get; set; }
            public Int16 UnitsOnOrder { get; set; }
            public Int16 ReorderLevel { get; set; }
            public bool Discontinued { get; set; }
            public Category Category { get; set; }
        }

        public class NorthwindContext : ObjectContext
        {  
            public NorthwindContext() : base("name=NorthwindEntities", "NorthwindEntities")//数据库连接
            {
                _categories = CreateObjectSet<Category>();
                _products = CreateObjectSet<Product>();
            }

            public ObjectSet<Category> Categories
            {
                get
                {
                    return _categories;
                }
            }
            private ObjectSet<Category> _categories;

            public ObjectSet<Product> Products
            {
                get
                {
                    return _products;
                }
            }
            private ObjectSet<Product> _products;
        }

    这些实体的实现是纯的POCO实体,你可以用这些实体类进行持久化操作,跟EF框架代码生成的实体类的唯一区别是他是POCO实体,可以运行单元测试进行一些简单的操作测试。

            [TestMethod]
            public void QueryForCategoriesReturnsRows()
            {          
              
                var categoryCount = context.Categories.ToList().Count;

                Assert.IsTrue(categoryCount > 0);
            }

  • 相关阅读:
    [JavaEE] Hibernate连接池配置测试
    restful--参考文档
    webapi--参考文档
    注册中心--参考文档
    .NET Core中文智能辅助提示设置
    .NET Core+web服务器在本地机房用几台电脑实现负载均衡+集群
    调式、跟踪
    微服务架构:介绍、分布式与集群、架构四要素、设计模式、架构说明、项目结构说明、通讯方式、架构演进
    异步:Task、Async、await、委托异步(Invoke、BeginInvoke、EndInvoke)
    IO使用解析
  • 原文地址:https://www.cnblogs.com/sunrfun/p/2042797.html
Copyright © 2011-2022 走看看