Написание связанных запросов и статистики на основе нескольких таблиц действительно является громоздкой задачей. Поскольку большой объем информации, основанной на символьных описаниях, трудно извлечь и поделиться, ее приходится переписывать, когда такая ситуация понадобится где-то еще. Чтобы избежать этой ситуации, SQL Artisan ссылается на объект представления и описывает информацию запроса данных через объект представления. Одним из самых больших преимуществ объекта представления является наследование, которое можно унаследовать от существующего объекта (объекта сущности или объекта представления); ) для расширения новых запросов. Функциональное описание. В реальном приложении вы можете создать базовый объект статистического представления, а затем получать конкретные статистические объекты в зависимости от ситуации (например, группировка по различной информации, отображение информации об этих полях и т. д.
Ниже приведен простой программный код:
Базовое представление статистики суммы продаж заказа Объект
/// <summary>
/// Создайте простой класс статистики суммы продаж заказа
/// </summary>
[TableMap("", TableType.View)]
public class OrderStat:HFSoft.Data. ITableView
{
#region ITableView Member
public virtual Table GetTable()
{
// TODO: Добавить реализацию 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
}
Унаследованное внедрение групповой статистики по сотрудникам
/// <summary>
/// Групповая статистика по сотрудникам
/// </ summary>
[TableMap ("", TableType.View)]
общественный классСотрудникTotal:OrderStat
{
частный int mEmployeeID;
[ViewColumn("Employee.EmployeeID")]
общественный intСотрудник
{
получить
{
возврат mEmployeeID;
}
set
{
mEmployeeID = значение
}
;}
Private string mEmployeeName ;
[ViewColumn("FirstName+LastName")]
public string StaffName
{
get
{
return mEmployeeName;
}
set
{
mEmployeeName = value;
}
}
}
Унаследованная реализация групповой статистики по продукту
/// <summary>
/// Групповая статистика по продуктам
/// </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
;
нужно только загрузить. Различные типы описаний могут реализовать запрос данных и статистические функции с различными потребностями.
Expression exp = new Expression();
exp &= new HFSoft.Data.Mapping.NumberField("year(" + DBMapping.Orders.OrderDate.Name + ")", null) == 1997;
List<EmployeeTotal> empt= exp .List<EmployeeTotal>();
List<ProductTotal> prot= exp.List<ProductTotal>();
Ассоциация Загрузка информационных полей связанной таблицы
Когда необходимо загрузить информационные поля связанной таблицы, вы можете создать объект представления, унаследованный от объекта сущности, однако вы также можете создать совершенно новый объект представления на основе реализации;
Объект представления информации о продукте
/// <summary>
/// Объект представления информации о продукте
/// </summary>
[TableMap("",TableType.View)]
public class ProductsView:Products,HFSoft.Data.ITableView
{
#region ITableView член
общедоступная виртуальная таблица GetTable()
{
return DBMapping.Products.INNER(DBMapping.Categories, DBMapping.Categories.CategoryID)
& DBMapping.Products.INNER(DBMapping.Suppliers, DBMapping.Suppliers.SupplierID })
;
#endregion
частная строка mCategoryName;
[ViewColumn("CategoryName")]
public string CategoryName
{
get
{
return mCategoryName;
}
set
{
mCategoryName = value;
}
}
частная строка mCompanyName;
[ViewColumn("CompanyName")]
public string CompanyName
{
get
{
вернуть mCompanyName
}
Set
{
mCompanyName = значение
;
}
}
Expression exp = new Expression();
exp &= DBMapping.Suppliers.City == "GuangZhou";
exp.List<ProductsView>();
Чтобы облегчить отображение, объект представления продукта представляет категорию продукта и информацию о поставщике.
Вышеупомянутое представляет собой простую процедуру для представления функции статистики нескольких запросов SQL Artisan. Компонент пытается воплотить все выходные данные в форме сущностных объектов (в основном для упрощения доступа, однако SQL Artisan не полностью поддерживает функции); все операторы SQL. Реализованы наиболее часто используемые функции.
http://www.cnblogs.com/henryfan/archive/2006/10/30/544540.html