All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
一个完整、安全的用户登录系统_[PHP教程]
初学来看:针对初学PHP新手的疑难问答_php资料_编程技术
PHP高亮显示,XML,源代码_php资料_编程技术
APMServ图文教程_[PHP教程]
从SQL,SERVER中随即搜索出几条数据_[SQL,Server教程]
利用PHP和CSS改变网页文字大小_php资料_编程技术
几种分页算法。翻页必备_[SQL,Server教程]
C#教程:创建DLL动态链接库
delphi获取Windows目录
Expression,Studio和Silverlight学习资源、安装问题汇总_[Asp.Net教程]
Reading number is top 10 pictures
From China fortress sora aoi1
中国文革时期的色情图片1
全身蕾丝丝质美臀
含苞欲放的素颜美少女3
宝贝系列
寒流来了
A man's favorite things6
girl of HuNan name is LiXiang(湖南辣姐李湘的写真)
Average female college students1
西方气质的东方美女2
Download software ranking
虚拟机5.5.3版
Be there or be square
实战黑客不求人
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
Adobe Flash Player(IE) 10.0.32.18 浏览器专用的FLASH插件
The Bermuda triangle3
The cock of the Grosvenor LTD handsome
Unix video tutorial8
Tram sex maniac 2 (H) rar bag19
Boxer's Top ten classic battle8
aaa published in(发表于) 2013/12/11 8:30:08 Edit(编辑)
SQL,Artisan多表查询和统计_.net资料_编程技术

SQL,Artisan多表查询和统计_.net资料_编程技术

SQL Artisan多表查询和统计_.net资料_编程技术-你的首页-uuhomepage.com

编写基于几个表的关联查询和统计的确是件烦琐的事情,由于基于字符的描述很多信息难以抽取出来共用,当其他地方需要这种情况的时候又必须重写。为了避免这情况SQL Artisan引用了视图对象,通过视图对象描述数据查询的信息;视图对象有一个最大的好处就是继承,可以从一个已经有的对象(实体对象或视图对象)继承下来扩展新的查询功能描述。实际应用中你可以建立一个基础统计视图对象,然后根据情况派生出具体的统计对象(如:根据不同信息分组,显示那些字段信息等).


下面是一些简单例程代码:


订单销售金额统计基础视图对象


///


/// 建立一个简单的订单销售金额统计类


///


[TableMap("", TableType.View)]


public class OrderStat:HFSoft.Data.ITableView


{


#region ITableView 成员


public virtual Table GetTable()


{


// TODO: 添加OrderV.GetTable 实现


return DBMapping.Orders.INNER(DBMapping.Employees, DBMapping.Employees.EmployeeID)& DBMapping.Orders.INNER(DBMapping.OrderDetails, DBMapping.Orders.OrderID)& DBMapping.OrderDetails.INNER(DBMapping.Products, DBMapping.Products.ProductID);


}


private Double mTotalize;


[StatColumn("Quantity*[Order Details].UnitPrice*(1-Discount)", StatType.Sum)]


public Double Totalize


{


get


{


return mTotalize;


}


set


{


mTotalize = value;


}


}


#endregion


}


按雇员分组统计情况继承实现


///


/// 按雇员进行分组统计


///


[TableMap("", TableType.View)]


public class EmployeeTotal:OrderStat


{


private int mEmployeeID;


[ViewColumn("Employees.EmployeeID")]


public int EmployeeID


{


get


{


return mEmployeeID;


}


set


{


mEmployeeID = value;


}


}


private string mEmployeeName;


[ViewColumn("FirstName+LastName")]


public string EmployeeName


{


get


{


return mEmployeeName;


}


set


{


mEmployeeName = value;


}


}


}


按产品分组统计继承实现


///


/// 按产品进行分组统计


///


[TableMap("", TableType.View)]


public class ProductTotal : OrderStat


{


private int mProductID;


[ViewColumn("Products.ProductID")]


public int ProductID


{


get


{


return mProductID;


}


set


{


mProductID = value;


}


}


private string mProductName;


[ViewColumn("ProductName")]


public string ProductName


{


get


{


return mProductName;


}


set


{


mProductName = value;


}


}


}


统计时在不更改条件的情况,你只需要加载不同的描述类型就能实现不同需求的数据查询统计功能。


Expression exp = new Expression();


exp &= new HFSoft.Data.Mapping.NumberField("year(" + DBMapping.Orders.OrderDate.Name + ")", null) == 1997;


List empt= exp.List();


List prot= exp.List();


关联加载相关表信息字段


当需要加载关联表相关字段信息时,可以建立一个继承于实体对象的视对象;不过也可以根据实现情况建立一个全新的视图对象。


产品信息视图对象


///


/// 产品信息视图对象


///


[TableMap("",TableType.View)]


public class ProductsView:Products,HFSoft.Data.ITableView


{


#region ITableView 成员


public virtual Table GetTable()


{


return DBMapping.Products.INNER(DBMapping.Categories, DBMapping.Categories.CategoryID)


& DBMapping.Products.INNER(DBMapping.Suppliers, DBMapping.Suppliers.SupplierID);


}


#endregion


private string mCategoryName;


[ViewColumn("CategoryName")]


public string CategoryName


{


get


{


return mCategoryName;


}


set


{


mCategoryName = value;


}


}


private string mCompanyName;


[ViewColumn("CompanyName")]


public string CompanyName


{


get


{


return mCompanyName;


}


set


{


mCompanyName = value;


}


}


}


Expression exp = new Expression();


exp &= DBMapping.Suppliers.City == "GuangZhou";


exp.List();


为了方便显示,产品视图对象引入了产品类别和供应商信息。


以上是通过简单例程介绍SQL Artisan多查询统计功能,组件试图把所有数据输出都以实体对象的方式体现来(主要简化访问操作性);不过SQL Artisan并没有完全支持所有SQL语句的功能,只是实现了大部常用的功能。






添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.