Écrire des requêtes et des statistiques associées basées sur plusieurs tables est en effet une tâche fastidieuse, car de nombreuses informations basées sur des descriptions basées sur des caractères sont difficiles à extraire et à partager, elles doivent être réécrites lorsque cette situation est nécessaire ailleurs. Afin d'éviter cette situation, SQL Artisan référence l'objet vue et décrit les informations de requête de données via l'objet vue ; l'un des plus grands avantages de l'objet vue est l'héritage, qui peut être hérité d'un objet existant (objet entité ou objet vue) ) pour étendre de nouvelles requêtes. Dans l'application réelle, vous pouvez créer un objet de vue statistique de base, puis dériver des objets statistiques spécifiques en fonction de la situation (tels que : regrouper selon différentes informations, afficher ces informations de champ, etc.).
Voici un code de routine simple :
Vue de base statistique du montant des ventes des commandes Objet
///
/// Créer une classe statistique simple du montant des ventes des commandes
///
[TableMap("", TableType.View)]
classe publique OrderStat:HFSoft.Data. ITableView
{
#region ITableView Member
public virtual Table GetTable()
{
// TODO : Ajouter l'implémentation de 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
; .Sum)]
public Double Totalize
{
get
{
return mTotalize;
}
set
{
mTotalize = value;
}
}
#endregion
}
Implémentation héritée des statistiques de groupe par les employés
///
/// Statistiques de groupe par les employés
/// résumé>
[TableMap ("", TableType.View)]
public class EmployeeTotal:OrderStat
{
private int mEmployeeID;
[ViewColumn("Employees.EmployeeID")]
public int EmployeeID
{
get
{
return mEmployeeID
}
set
{
mEmployeeID = valeur
}
}
chaîne privée mEmployeeName ;
[ViewColumn("FirstName+LastName")]
public string EmployeeName
{
get
{
return mEmployeeName ;
}
set
{
mEmployeeName = value
}
}
}
Implémentation héritée des statistiques de groupe par produit
///
/// Regrouper les statistiques par produit
///
[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
;
il suffit de charger Différents types de description peuvent réaliser des requêtes de données et des fonctions statistiques avec des besoins différents.
Expression exp = new Expression();
exp
&= new HFSoft.Data.Mapping.NumberField("year(" + DBMapping.Orders.OrderDate.Name + ")", null) == 1997;
.List
List
Association Chargement des champs d'informations de table associée
Lorsqu'il est nécessaire de charger des champs d'informations de table associée, vous pouvez créer un objet de vue hérité de l'objet d'entité, mais vous pouvez également créer un tout nouvel objet de vue basé sur l'implémentation ;
Objet d'affichage des informations sur le produit
///
/// Objet d'affichage des informations sur le produit
///
[TableMap("",TableType.View)]
public class ProductsView:Products,HFSoft.Data.ITableView
{
#region ITableView membre
Table virtuelle publique GetTable()
{
return DBMapping.Products.INNER(DBMapping.Categories, DBMapping.Categories.CategoryID)
& DBMapping.Products.INNER(DBMapping.Suppliers, DBMapping.Suppliers.SupplierID })
;
#endregion
chaîne privée mCategoryName ;
[ViewColumn("
CategoryName")]
chaîne publique CategoryName
{
get
{
return mCategoryName ;
}
set
{
mCategoryName
= value;
}
}
chaîne
privée
mCompanyName
;
return mCompanyName
}
set
{
mCompanyName = valeur
}
}
}
Expression exp = new Expression();
exp &= DBMapping.Suppliers.City == "GuangZhou";
exp.List
Afin de faciliter l'affichage, l'objet de vue du produit introduit les informations sur la catégorie de produit et le fournisseur.
Ce qui précède est une routine simple pour introduire la fonction de statistiques multi-requêtes de SQL Artisan. Le composant tente d'incarner toutes les données sorties sous la forme d'objets d'entité (principalement pour simplifier l'opérabilité de l'accès, cependant, SQL Artisan ne prend pas entièrement en charge les fonctions de) ; toutes les instructions SQL. Implémentation des fonctions les plus couramment utilisées.
http://www.cnblogs.com/henryfan/archive/2006/10/30/544540.html