NET数据开发框架的实体操作语言OQL构造复杂查询

作者: 医学科学  发布:2019-10-07

PDF.NET数据开发框架(Pwmis Data develop Framework,) 是一套借鉴iBatis、Hibernate、Linq等数据访问框架而来的轻量级数据开发框架,主要特点是具有iBatis特点的SQL-MAP功能和框架独特的实体对象查询语言--OQL,下面我们使用OQL来构造一个复杂的实体查询。

[本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 

[本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 

 

目录

目录

首先定义两个实体类:用户类和订单类,可以使用框架提供的实体类生成器生成,下面是详细代码:

一、ORM的"三国志"    2

一、ORM的"三国志"    2

 

1,PDF.NET诞生历程    2

1,PDF.NET诞生历程    2

/* 
 本类由PWMIS 实体类生成工具(Ver 4.1)自动生成
 
 使用前请先在项目工程中引用 PWMIS.Core.dll
 2010/12/8 15:01:22
*/

2,Linq2Sql&EF:    3

2,Linq2Sql&EF:    3

using System;
using PWMIS.Common;
using PWMIS.DataMap.Entity;

3,微型ORM崛起    4

3,微型ORM崛起    4

namespace LocalDB 
{
    /// <summary>
    /// 用户表
    /// </summary>
  [Serializable()]
  public partial class Table_User : EntityBase
  {
    public Table_User()
    {
            TableName = "Table_User";
            EntityMap=EntityMapType.SqlMap;
            //IdentityName = "标识字段名";
    IdentityName="UID";

二、一决高下    4

二、一决高下    4

            //PrimaryKeys.Add("主键字段名");
    PrimaryKeys.Add("UID");

2.1,ORM没有DataSet快?    4

2.1,ORM没有DataSet快?    4

            
            PropertyNames = new string[] { "UID","Name","Sex","Height","Birthday" };
            PropertyValues = new object[PropertyNames.Length]; 

2.1.1,ORM生成SQL的质量问题    4

2.1.1,ORM生成SQL的质量问题    4

    }

2.1.2,DataReader没有DataSet快?    5

2.1.2,DataReader没有DataSet快?    5

      /// <summary>
      /// 用户标识
      /// </summary>
      public System.Int32 UID
      {
          get{return getProperty<System.Int32>("UID");}
          set{setProperty("UID",value );}
      }

2,ORM的三个火枪手    6

2,ORM的三个火枪手    6

      /// <summary>
      /// 姓名
      /// </summary>
      public System.String Name
      {
          get{return getProperty<System.String>("Name");}
          set{setProperty("Name",value ,50);}
      }

2.1,委托+缓存    6

2.1,委托+缓存    6

      /// <summary>
      /// 性别
      /// </summary>
      public System.Boolean Sex
      {
          get{return getProperty<System.Boolean>("Sex");}
          set{setProperty("Sex",value );}
      }

2.2,表达式树    11

2.2,表达式树    11

      /// <summary>
      /// 身高
      /// </summary>
      public System.Double Height
      {
          get{return getProperty<System.Double>("Height");}
          set{setProperty("Height",value );}
      }

2.3,Emit    12

2.3,Emit    12

      /// <summary>
      /// 出生日期
      /// </summary>
      public System.DateTime Birthday
      {
          get{return getProperty<System.DateTime>("Birthday");}
          set{setProperty("Birthday",value );}
      }

三、华山论剑    14

三、华山论剑    14

  }

3.1,参赛阵容    14

3.1,参赛阵容    14

/// <summary>
/// 订单表
/// </summary>
  [Serializable()]
  public partial class Table_Order : EntityBase
  {
      public Table_Order()
      {
          TableName = "Table_Order";
          EntityMap = EntityMapType.SqlMap;
          //IdentityName = "标识字段名";
          IdentityName = "OID";

3.2,比赛内容    14

3.2,比赛内容    14

          //PrimaryKeys.Add("主键字段名");
          PrimaryKeys.Add("OID");

3.3,武功介绍    15

3.3,武功介绍    15

          PropertyNames = new string[] { "OID", "UID", "ProductName", "BuyCount", "OrderDate" };
          PropertyValues = new object[PropertyNames.Length];

3.3.1,EF的招式:    15

3.3.1,EF的招式:    15

      }

3.3.1,DataSet 的招式:    16

3.3.1,DataSet 的招式:    16

      /// <summary>
      /// 订单编号
      /// </summary>
      public System.Int32 OID
      {
          get { return getProperty<System.Int32>("OID"); }
          set { setProperty("OID", value); }
      }

3.3.3,手写代码:    18

3.3.3,手写代码:    18

      /// <summary>
      /// 用户号
      /// </summary>
      public System.Int32 UID
      {
          get { return getProperty<System.Int32>("UID"); }
          set { setProperty("UID", value); }
      }

3.3.4,采用泛型委托:    18

3.3.4,采用泛型委托:    18

      /// <summary>
      /// 产品名字
      /// </summary>
      public System.String Name
      {
          get { return getProperty<System.String>("ProductName"); }
          set { setProperty("ProductName", value, 50); }
      }

3.3.7,PDF.NET OQL:    21

3.3.7,PDF.NET OQL:    21

      /// <summary>
      /// 购买数量
      /// </summary>
      public System.Int32 Count
      {
          get { return getProperty<System.Int32>("BuyCount"); }
          set { setProperty("BuyCount", value); }
      }

3.3.8,PDF.NET OQL&POCO:    22

3.3.8,PDF.NET OQL&POCO:    22

本文由金沙澳门官网发布于医学科学,转载请注明出处:NET数据开发框架的实体操作语言OQL构造复杂查询

关键词:

上一篇:没有了
下一篇:没有了