การเขียนแบบสอบถามและสถิติที่เกี่ยวข้องโดยอิงจากหลายตารางจึงเป็นงานที่ยุ่งยาก เนื่องจากข้อมูลจำนวนมากตามคำอธิบายแบบอักขระเป็นเรื่องยากที่จะแยกและแชร์ จึงจำเป็นต้องเขียนใหม่เมื่อจำเป็นต้องใช้สถานการณ์นี้ในที่อื่น เพื่อหลีกเลี่ยงสถานการณ์นี้ SQL Artisan จะอ้างอิงวัตถุมุมมองและอธิบายข้อมูลการสืบค้นข้อมูลผ่านวัตถุมุมมอง หนึ่งในประโยชน์ที่ใหญ่ที่สุดของวัตถุมุมมองคือการสืบทอดซึ่งสามารถสืบทอดมาจากวัตถุที่มีอยู่ (วัตถุเอนทิตีหรือวัตถุมุมมอง ) เพื่อขยายคำอธิบายการทำงาน ในแอปพลิเคชันจริง คุณสามารถสร้างออบเจ็กต์มุมมองทางสถิติพื้นฐาน และจากนั้นรับออบเจ็กต์ทางสถิติเฉพาะตามสถานการณ์ (เช่น การจัดกลุ่มตามข้อมูลที่แตกต่างกัน การแสดงข้อมูลฟิลด์เหล่านั้น เป็นต้น)
ต่อไปนี้เป็นโค้ดรูทีนง่ายๆ:
จำนวนการสั่งซื้อการขายมุมมองพื้นฐานเชิงสถิติ วัตถุ
///
/// สร้างคลาสสถิติจำนวนการขายตามคำสั่งอย่างง่าย
///
[TableMap("", TableType.View)]
ระดับสาธารณะ OrderStat:HFSoft.Data ITableView
{
#region ITableView Member
public virtual Table GetTable()
{
// TODO: เพิ่มการใช้งาน OrderV.GetTable
ส่งคืน DBMapping.Orders.INNER(DBMapping.Employees, DBMapping.Employees.EmployeeID)& DBMapping.Orders.INNER(DBMapping.OrderDetails, DBMapping.Orders.OrderID )& DBMapping.OrderDetails.INNER(DBMapping.Products, DBMapping.Products.ProductID);
}
ส่วนตัว mTotalize;
[StatColumn("ปริมาณ*[รายละเอียดการสั่งซื้อ].UnitPrice*(1-ส่วนลด)", StatType .Sum)]
public Double Totalize
{
get
{
return mTotalize;
}
set
{
mTotalize = value;
}
#endregion
}
การสืบทอดสถิติกลุ่มโดยพนักงาน
///
/// สถิติกลุ่มโดยพนักงาน
/// สรุป>
[TableMap ("", TableType.View)]
คลาสสาธารณะ EmployeeTotal: OrderStat
{
ส่วนตัว
int
mEmployeeID;
[ViewColumn ("Employees.EmployeeID"
)]
public int EmployeeID
{
รับ
{
return
mEmployeeID
;
}
สตริงส่วนตัว mEmployeeName ;
[ViewColumn("FirstName+LastName")]
สตริง
สาธารณะ
EmployeeName
{
get
{
return
mEmployeeName
;
}
set
{
mEmployeeName
= value
;
สถิติกลุ่มตามผลิตภัณฑ์
///
[TableMap("", TableType.View)]
คลาสสาธารณะ ProductTotal : OrderStat
{
private int mProductID;
[ViewColumn("Products.ProductID")]
public int ProductID
{
get
{
return mProductID ;
}
set
{
mProductID
=
value
;
}
}
สตริง
ส่วนตัว
mProductName
;
เพียงแต่ต้องโหลด คำอธิบายประเภทต่างๆ ก็สามารถรับรู้ข้อมูลและฟังก์ชันทางสถิติที่มีความต้องการที่แตกต่างกันได้
Expression exp = new Expression();
exp &= new HFSoft.Data.Mapping.NumberField("ปี(" + DBMapping.Orders.OrderDate.Name + ")", null) == 1997;
รายการ
รายการ
การเชื่อมโยงกำลังโหลดฟิลด์ข้อมูลตารางที่เกี่ยวข้อง
เมื่อจำเป็นต้องโหลดฟิลด์ข้อมูลตารางที่เกี่ยวข้อง คุณสามารถสร้างออบเจ็กต์มุมมองที่สืบทอดมาจากออบเจ็กต์เอนทิตีได้ อย่างไรก็ตาม คุณสามารถสร้างออบเจ็กต์มุมมองใหม่ตามการใช้งานได้
วัตถุมุมมองข้อมูลผลิตภัณฑ์
///
/// วัตถุมุมมองข้อมูลผลิตภัณฑ์
///
[TableMap("",TableType.View)]
คลาสสาธารณะ ProductsView:Products,HFSoft.Data.ITableView
{
#region ITableView สมาชิก
GetTable ตารางเสมือนสาธารณะ ()
{
ส่งคืน DBMapping.Products.INNER (DBMapping.Categories, DBMapping.Categories.CategoryID)
& DBMapping.Products.INNER (DBMapping.Suppliers, DBMapping.Suppliers.SupplierID)
}
#endregion
สตริงส่วนตัว mCategoryName;
[ViewColumn("CategoryName"
)]
สตริงสาธารณะ CategoryName
{
get
{
return mCategoryName;
}
set
{
mCategoryName
= value;
}
}
สตริง
ส่วนตัว
mCompanyName
;
ส่งคืน mCompanyName;
}
ตั้ง
ค่า
{
mCompanyName =
value
;
Expression exp = new Expression();
exp &= DBMapping.Suppliers.City == "GuangZhou";
exp.List
เพื่ออำนวยความสะดวกในการแสดงผล ออบเจ็กต์มุมมองผลิตภัณฑ์จะแนะนำหมวดหมู่ผลิตภัณฑ์และข้อมูลซัพพลายเออร์
ข้างต้นเป็นขั้นตอนง่าย ๆ ที่จะแนะนำฟังก์ชันสถิติหลายแบบสอบถามของ SQL Artisan ส่วนประกอบพยายามที่จะรวบรวมผลลัพธ์ข้อมูลทั้งหมดในรูปแบบของวัตถุเอนทิตี (ส่วนใหญ่เพื่อลดความซับซ้อนในการดำเนินการเข้าถึง) อย่างไรก็ตาม SQL Artisan ไม่สนับสนุนฟังก์ชันของ คำสั่ง SQL ทั้งหมดใช้งานฟังก์ชันที่ใช้บ่อยที่สุด
http://www.cnblogs.com/henryfan/archive/2006/10/30/544540.html