Escribir consultas y estadísticas relacionadas basadas en varias tablas es de hecho una tarea engorrosa, dado que una gran cantidad de información basada en descripciones basadas en caracteres es difícil de extraer y compartir, debe reescribirse cuando esta situación sea necesaria en otro lugar. Para evitar esta situación, SQL Artisan hace referencia al objeto de vista y describe la información de la consulta de datos a través del objeto de vista. Uno de los mayores beneficios del objeto de vista es la herencia, que se puede heredar de un objeto existente (objeto de entidad u objeto de vista); ) para ampliar nuevas consultas. Descripción funcional. En la aplicación real, puede crear un objeto de vista estadística básico y luego derivar objetos estadísticos específicos de acuerdo con la situación (como: agrupar según información diferente, mostrar esa información de campo, etc.).
El siguiente es un código de rutina simple:
Vista básica estadística del importe de las ventas del pedido Objeto
/// <summary>
/// Crear una clase de estadísticas del importe de las ventas del pedido simple
/// </summary>
[TableMap("", TableType.View)]
clase pública OrderStat:HFSoft.Data. ITableView
{
#region ITableView Miembro
public virtual Table GetTable()
{
// TODO: Agregar la implementación 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("Cantidad*[Detalles del pedido].PrecioUnitario*(1-Descuento)", StatType; .Sum)]
public Double Totalize
{
get
{
return mTotalize
}
set
{
mTotalize = value;
}
}
#endregion
}
Implementación heredada de estadísticas grupales por empleados
/// <summary>
/// Estadísticas grupales por empleados
/// </ resumen>
[TableMap ("", TableType.View)]
public class EmployeeTotal:OrderStat
{
private int mEmployeeID;
[ViewColumn("Employees.EmployeeID")]
public int EmployeeID
{
get
{
return mEmployeeID
}
set
{
mEmployeeID = valor
}
}
cadena privada mEmployeeName ;
[ViewColumn("FirstName+LastName")]
public string EmployeeName
{
get
{
return mEmployeeName
}
set
{
mEmployeeName = value
}
}
}
Implementación heredada de estadísticas de grupo por producto
/// <summary>
/// Estadísticas de grupo por producto
/// </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
;
solo es necesario cargar Diferentes tipos de descripción pueden realizar consultas de datos y funciones estadísticas con diferentes necesidades.
Expresión exp = nueva Expresión();
exp &= nuevo HFSoft.Data.Mapping.NumberField("año(" + DBMapping.Orders.OrderDate.Name + ")", nulo) == 1997
Lista<EmployeeTotal> empt= exp; .List<EmpleadoTotal>();
Lista<ProductTotal> prot= exp.List<ProductTotal>();
Asociación Carga de campos de información de tabla relacionados
Cuando es necesario cargar campos de información de tabla relacionados, puede crear un objeto de vista heredado del objeto de entidad; sin embargo, también puede crear un objeto de vista nuevo basado en la implementación.
Objeto de vista de información del producto
/// <summary>
/// Objeto de vista de información del producto
/// </summary>
[TableMap("",TableType.View)]
public class ProductsView:Products,HFSoft.Data.ITableView
{
#region ITableView miembro
Tabla virtual pública GetTable()
{
return DBMapping.Products.INNER(DBMapping.Categories, DBMapping.Categories.CategoryID)
& DBMapping.Products.INNER(DBMapping.Suppliers, DBMapping.Suppliers.SupplierID
}
#endregion
cadena privada mCategoryName;
[ViewColumn("
CategoryName")]
cadena pública CategoryName
{
get
{
return mCategoryName
}
set
{
mCategoryName = value
}
}
cadenaprivada
mCompanyName; public string CompanyName
{
get
{
return mCompanyName
}
set
{
mCompanyName
=
valor
;
Expresión exp = new Expression();
exp &= DBMapping.Suppliers.City == "GuangZhou";
exp.List<ProductsView>();
Para facilitar la visualización, el objeto de vista del producto introduce la categoría del producto y la información del proveedor.
Lo anterior es una rutina simple para presentar la función de estadísticas de consultas múltiples de SQL Artisan. El componente intenta incorporar toda la salida de datos en forma de objetos de entidad (principalmente para simplificar la operatividad del acceso, sin embargo, SQL Artisan no admite completamente las funciones de); todas las sentencias SQL. Implementadas las funciones más utilizadas.
http://www.cnblogs.com/henryfan/archive/2006/10/30/544540.html