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);
            }

  • 相关阅读:
    Log4Net二次封装
    jquery动态生成二维码添加自定义logo
    小程序map地图多点定位
    vue上传阿里云图片组件
    vue移动端地址三级联动组件(二)
    vue移动端地址三级联动组件(一)
    vue自定义轻量级form表单校验
    js中间件
    事件模型
    通过JS唤醒app(安卓+ios)
  • 原文地址:https://www.cnblogs.com/sunrfun/p/2042797.html
Copyright © 2011-2022 走看看