zoukankan      html  css  js  c++  java
  • EF之POCO应用系列2——复杂类型


    在.NET开发中,EF4以前的版本以及LINQ TO SQL都不支持complex数据类型,EF4终于支持complex类型的数据了,这意味着微软的EF框架朝领域驱动方面又迈了一大步。

        复杂的数据类型其实就是一个POCO类,想想曾几何时,我们想在开发时想设计一个用户信息类,我们写的类不得不包括以下信息:

    public class UserInfo{

         public int UID{GET;SET};

         public string Identity{get;set};

         public string FirstName{get;set};

         public string LastName{get;set};

    }

    我们的姓名一般都是包括FirstName和LastName组成。我们现在改成复杂的数据类型看看是如何实现的

    public class UserInfo{

         public int UID{GET;SET;};

         public string Identity{get;set};

         public Name name{get;set;};

    }

    public class Name{

         public string FirstName{get;set};

         public string LastName{get;set};

    }

    还是继续接上一篇中的Northwind,我们继续扩展product类,为该类添加一个复杂类型库存详细资料“InventoryDetail”。

    1、打开“Northwind.edmx”,点击product-》添加-》复杂类型。

    2、打开模型浏览器,为复杂类型添加标量属性,如下图:

    image

    为详细资料类添加如下属性:

        public Int16 UnitsInStock { get; set; }
        public Int16 UnitsOnOrder { get; set; }
        public Int16 ReorderLevel { get; set; }
    3、在工程NorthwindModel中添加InventoryDetail.cs文件,代码如下;

    1 publicclass InventoryDetail
    2 {
    3 public Int16 UnitsInStock { get; set; }
    4 public Int16 UnitsOnOrder { get; set; }
    5 public Int16 ReorderLevel { get; set; }
    6 }

    4、更改product.cs代码,增加复杂类型“InventoryDetail”如下:

    复制代码
    1 publicclass Product
    2 {
    3 publicint ProductID { get; set; }
    4 publicstring ProductName { get; set; }
    5 publicint SupplierID { get; set; }
    6 publicstring QuantityPerUnit { get; set; }
    7 publicdecimal UnitPrice { get; set; }
    8 public InventoryDetail InventoryDetail { get; set; }
    9 publicbool Discontinued { get; set; }
    10 public Category Category { get; set; }
    11 }
    复制代码

    注意红色的部分。

    现在可以在测试中用如下代码进行查找库存详细资料了:

    var outOfStockProducts = from c in context.Products
                             where c.InventoryDetail.UnitsInStock == 0
                             select c;

  • 相关阅读:
    令人眼花缭乱的XP封面:)
    GT3.9.5中新增的DRS服务
    4月12日后WinXP系统将会强制下载SP2(zz)
    全球手机排名出炉 摩托三星西门子位置调整(zz)
    元宵佳节,悬谜竞猜
    Laszlo平台简介(zz)
    笔记本市场见闻
    最近Wallop好像较难上去啊
    Dell再次表示不采用AMD处理器(zz)
    Media Player Classic 6.4.8.3发布(zz)
  • 原文地址:https://www.cnblogs.com/tianboblog/p/3227421.html
Copyright © 2011-2022 走看看