Das Schreiben verwandter Abfragen und Statistiken auf der Grundlage mehrerer Tabellen ist in der Tat eine mühsame Aufgabe. Da viele Informationen, die auf zeichenbasierten Beschreibungen basieren, schwer zu extrahieren und weiterzugeben sind, müssen sie neu geschrieben werden, wenn diese Situation an anderer Stelle benötigt wird. Um diese Situation zu vermeiden, verweist SQL Artisan auf das Ansichtsobjekt und beschreibt die Datenabfrageinformationen über das Ansichtsobjekt. Einer der größten Vorteile des Ansichtsobjekts ist die Vererbung, die von einem vorhandenen Objekt (Entitätsobjekt oder Ansichtsobjekt) geerbt werden kann ), um neue Abfragen zu erweitern. In der tatsächlichen Anwendung können Sie ein grundlegendes Statistikansichtsobjekt erstellen und dann je nach Situation spezifische Statistikobjekte ableiten (z. B. Gruppierung nach verschiedenen Informationen, Anzeige dieser Feldinformationen usw.).
Im Folgenden finden Sie einige einfache Routinecodes:
Statistische Grundansicht des Bestellverkaufsbetrags Objekt
///
/// Erstellen Sie eine einfache Statistikklasse für den Bestellverkaufsbetrag
///
[TableMap("", TableType.View)]
öffentliche Klasse OrderStat:HFSoft.Data. ITableView
{
#region ITableView Member
public virtual Table GetTable()
{
// TODO: OrderV.GetTable-Implementierung hinzufügen
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
; .Sum)]
public Double Totalize
{
get
{
return mTotalize;
}
set
{
mTotalize = value
}
}
#endregion
}
Geerbte Implementierung von Gruppenstatistiken nach Mitarbeitern
///
/// Gruppenstatistiken nach Mitarbeitern
/// Zusammenfassung>
[TableMap (""
,
TableType.View
)
]
public
class
EmployeeTotal
:
OrderStat
{
private
int
mEmployeeID
;
}
private string mEmployeeName ;
[ViewColumn("FirstName+LastName")]
public
string
EmployeeName
{
get
{
return
mEmployeeName
}
set
{
mEmployeeName = value;
///
/// Statistiken nach Produkt gruppieren
///
[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
;
Sie müssen nur laden. Verschiedene Beschreibungstypen können Datenabfrage- und Statistikfunktionen mit unterschiedlichen Anforderungen realisieren.
Ausdruck exp = new Expression();
exp &= new HFSoft.Data.Mapping.NumberField("year(" + DBMapping.Orders.OrderDate.Name + ")", null) == 1997;
List
List
Assoziation Laden verwandter Tabelleninformationsfelder
Wenn es notwendig ist, verwandte Tabelleninformationsfelder zu laden, können Sie ein vom Entitätsobjekt geerbtes Ansichtsobjekt erstellen. Sie können jedoch auch ein völlig neues Ansichtsobjekt basierend auf der Implementierung erstellen.
Produktinformationsansichtsobjekt
///
/// Produktinformationsansichtsobjekt
///
[TableMap("",TableType.View)]
öffentliche Klasse ProductsView:Products,HFSoft.Data.ITableView
{
#region ITableView Mitglied
öffentliche virtuelle Tabelle GetTable()
{
return DBMapping.Products.INNER(DBMapping.Categories, DBMapping.Categories.CategoryID)
& DBMapping.Products.INNER(DBMapping.Suppliers, DBMapping.Suppliers.SupplierID
}
#endregion
private string mCategoryName;
[
ViewColumn
(
"CategoryName
"
)]
publicstring
CategoryName
{
get
{
return
mCategoryName
}
set
{
mCompanyName
;
return mCompanyName;
}
set
{
mCompanyName
=
value
;
Ausdruck exp = new Expression();
exp &= DBMapping.Suppliers.City == "GuangZhou";
exp.List
Um die Anzeige zu erleichtern, führt das Produktansichtsobjekt Produktkategorie- und Lieferanteninformationen ein.
Das Obige ist eine einfache Routine zur Einführung der SQL Artisan-Multiabfrage-Statistikfunktion. Die Komponente versucht, alle Datenausgaben in Form von Entitätsobjekten zu verkörpern (hauptsächlich, um die Zugriffsfunktionalität zu vereinfachen). Alle SQL-Anweisungen haben die am häufigsten verwendeten Funktionen implementiert.
http://www.cnblogs.com/henryfan/archive/2006/10/30/544540.html