Escrever consultas e estatísticas relacionadas com base em diversas tabelas é de fato uma tarefa complicada. Como muitas informações baseadas em descrições baseadas em caracteres são difíceis de extrair e compartilhar, elas devem ser reescritas quando esta situação for necessária em outro lugar. Para evitar esta situação, o SQL Artisan faz referência ao objeto view e descreve as informações da consulta de dados através do objeto view. Um dos maiores benefícios do objeto view é a herança, que pode ser herdada de um objeto existente (objeto entidade ou objeto view; ) para estender novas consultas.
Na aplicação real, você pode criar um objeto de visualização estatística básica e, em seguida,
derivar objetos estatísticos específicos de acordo com a situação (como: agrupar de acordo com informações diferentes, exibir essas informações de campo, etc.).
Visualização básica estatística do valor das vendas do pedido Object
/// <summary>
/// Cria uma classe simples de estatísticas do valor das vendas do pedido
/// </summary>
[TableMap("", TableType.View)]
public class OrderStat:HFSoft.Data. ITableView
{
#region ITableView Membro
public virtual Table GetTable()
{
// TODO: Adicionar implementação 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
("Quantidade*[Detalhes do pedido].UnitPrice*(1-Desconto)", StatType; .Sum)]
public Double Totalize
{
get
{
return mTotalize
}
set
{
mTotalize = value;
}
#endregion
}
Implementação herdada de estatísticas de grupo por funcionários
/// <summary>
/// Estatísticas de grupo por funcionários
///
</ resumo>
[TableMap ("", TableType.View)]
public class EmployeeTotal:OrderStat
{
private int mEmployeeID;
[ViewColumn("Employees.EmployeeID")]
public int EmployeeID
{
get
{
return mEmployeeID
}
set
{
mEmployeeID = valor
}
;}
private string mEmployeeName ;
[ViewColumn("FirstName+LastName")]
public
string
EmployeeName
{
get
{
return
mEmployeeName
}
set
{
mEmployeeName
=
value
;
Agrupar estatísticas por produto
/// </summary>
[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
;
só precisa carregar Diferentes tipos de descrição podem realizar consultas de dados e funções estatísticas com diferentes necessidades.
Expressão exp =new
Expression()
; .List<EmployeeTotal>();
List<ProductTotal> prot= exp.List<ProductTotal>();
Carregamento de associação de campos de informações de tabelas relacionadas
Quando for necessário carregar campos de informações de tabelas relacionadas, você pode criar um objeto de visualização herdado do objeto de entidade, mas também pode criar um novo objeto de visualização com base na implementação;
Objeto de visualização de informações do produto
/// <summary>
/// Objeto de visualização de informações do produto
/// </summary>
[TableMap("",TableType.View)]
public class ProductsView:Products,HFSoft.Data.ITableView
{
#region ITableView membro
tabela virtual pública 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
;
return
mEmpresaNome
}
set
{
mEmpresaNome=
valor
;
Expression exp = new Expression();
exp &= DBMapping.Suppliers.City == "GuangZhou"
;
Para facilitar a exibição, o objeto de visualização do produto apresenta a categoria do produto e as informações do fornecedor.
A descrição acima é uma rotina simples para introduzir a função de estatísticas de múltiplas consultas do SQL Artisan. O componente tenta incorporar todas as saídas de dados na forma de objetos de entidade (principalmente para simplificar a operabilidade de acesso, no entanto, o SQL Artisan não suporta totalmente as funções de). todas as instruções SQL Implementadas funções mais usadas.
http://www.cnblogs.com/henryfan/archive/2006/10/30/544540.html