您的位置:首页 > 数据库

SQL Artisan1.2版Table模型功能描述

2006-08-13 21:35 218 查看
SQL Artisan有着明确的目标就是代替SQL语句进行数据库操作。虽然目标似乎很遥远,但在新版中已经实现了大部的SQL语句操作,包括在现实项目中面对比较多的多表关联查询和数据统计等。当然SQL Artisan的实现并不是为简单地代替SQL语句,方便灵活地操作数据库才是它的本质。

在1.2版本中主要对O/M部分进行强化,其中大部分的改变集中在Table模型中;通过Table模型可以对数据表进行增、删、改、查等操作,包括比较复杂质多表关联查询和统计。在实际应用中几呼所有数据操作都可以通过Table 模型来完成。

Table[/b]模型的操作方法:[/b]

Insert[/b]

用于表插入数据操作,可以执行映射的实体对象或指定相关字段信息。当Table为关联对象时不能进行此操作。

Update[/b]

用于表更新数据操作,可以执行映射的实体对象或指定相关字段信息。当Table为关联对象时不能进行此操作。

Delete[/b]

用于表删除数据操作,可以执行映射的实体对象或指定相关字段信息。当Table为关联对象时不能进行此操作。

Count[/b]

用于获取表中符合条件的记录数。

List[/b]

用于获取表中符合条件的记录映射到实体对象集中,当Table为关联对象时不能进行此操作。

ListTo[/b]

用于获取表中符合条件的记录映射到自定义实体对象集中,此操作常用于多表关联查询和数据统计。

Table[/b]模型相关操作方法用例(以MSSQL:NorthWind[/b]数据模型为例):[/b]

Insert[/b]方法用例:[/b]

[/b]用例1[/b]

[/b]Employees item = new Employees();

item.FirstName ="fan";

item.LastName ="henry";

item.ReportsTo = 2;

item.BirthDate = DateTime.Parse("1979-1-1");

item.HireDate = DateTime.Parse("2002-12-1");

item.Photo = new byte[0];

Employees.Mapper.Insert(item);

添加一条新的雇员信息

用例2[/b]

Employees.Mapper.Insert(

Employees.Mapper.FirstName.Set("He"),

Employees.Mapper.LastName.Set("LiQing"));

[/b]添加一条新的雇员信息,指定FirstName和LastName的字段值。

Update[/b]方法用例:[/b]

[/b]用例1:[/b]

[/b]Employees item = Employees.Mapper.GetByIndex(3);

item.Notes += "Test_Update";

Employees.Mapper.Update(item);

获取索引为3的雇员对象,修改Notes属性并更新。[/b]

[/b]用例2:[/b]

[/b]Employees.Mapper.Update(Employees.Mapper.FirstName =="Fan",

Employees.Mapper.Notes.Set("update test2"));[/b]

[/b]更新FirstName等于Fan记录的Notes字段值。

Delete[/b]方法用例:[/b]

[/b]用例1:[/b]

[/b]Employees.Mapper.Delete(Employees.Mapper.FirstName =="fan"

| Employees.Mapper.FirstName =="he");

删除FirstNamne等于fan或 等于he的记录。[/b]

[/b]

Count[/b]方法用例:[/b]

[/b]用例1:[/b]

[/b]int count = Employees.Mapper.Count(null);

统计Employees表中所有记录数

[/b]用例2:[/b]

[/b]int count = Employees.Mapper.INNER(Orders.Mapper,Employees.Mapper.EmployeeID)

.Count(Employees.Mapper.EmployeeID ==3);

统计相关Employyes相关所有订单记录数

用例3[/b]

[/b]int count = Orders.Mapper.Count(Orders.Mapper.OrderDate >= DateTime.Parse("1997-7-1") & Orders.Mapper.OrderDate < DateTime.Parse("1997-8-1"));

统计OrderData大于等1997-7-1与小于1997-8-1的所有订单记录数。

List[/b]方法用例:[/b]

[/b]用例1:[/b]

[/b]System.Collections.IList list = Employees.Mapper.List();

获取所有雇员信息。[/b]

[/b]用例2:[/b]

[/b]System.Collections.IList list = Orders.Mapper.Where(Orders.Mapper.OrderDate >= DateTime.Parse("1997-1-1")& Orders.Mapper.OrderDate < DateTime.Parse("1998-1-1")).List();

获取1997-1-1到1998-1-1的所有订单信息.[/b]

[/b]用例3:[/b]

[/b]System.Collections.IList list = Orders.Mapper.Where(Orders.Mapper.OrderDate >= DateTime.Parse("1997-7-1")& Orders.Mapper.OrderDate < DateTime.Parse("1997-8-1") & Orders.Mapper.EmployeeID.In(2,3)).List();

获取1997-7-1到1997-8-1的雇员索引为1,2的所有订单信息

ListTo[/b]方法用例:[/b]

[/b]用例1:[/b]

[/b]System.Collections.IList list= Employees.Mapper.ListTo(typeof(EmployeeV));

根据EmployeeV模型来加载相关信息[/b]

[/b]用例2:[/b]

[/b]System.Collections.IList list =(Orders.Mapper.INNER(Employees.Mapper,Employees.Mapper.EmployeeID)

& Orders.Mapper.INNER(Customers.Mapper,Customers.Mapper.CustomerID)).ListTo(typeof(OrderV));

根据OrderV模型来加载相关信息

[/b]用例3:[/b]

[/b]System.Collections.IList list = Orders.Mapper.ListTo(typeof(EmployeeOrders));[/b]

[/b]用例4:[/b]

[/b]System.Collections.IList list = Orders.Mapper.Where(

Orders.Mapper.OrderDate.Between(

DateTime.Parse("1997-6-1"),

DateTime.Parse("1997-12-31")

)

).ListTo(typeof(EmployeeOrders));

统计出1997-6-1到1997-12-31所有雇员的订单数。[/b]

[/b]用例5:[/b]

[/b]System.Collections.IList list = Orders.Mapper.INNER(OrderDetails.Mapper,Orders.Mapper.OrderID)

.ListTo(typeof(EmployeeSale));

统计雇员销售总金额

[/b]用例6:[/b]

[/b]System.Collections.IList list = Orders.Mapper.INNER(OrderDetails.Mapper,Orders.Mapper.OrderID)

.Where(Orders.Mapper.OrderDate.ToObjectField().Between("1997-6-1","1997-12-31"))

.ListTo(typeof(EmployeeSale));[/b]

[/b]统计出1997-6-1到1997-2-31所有雇员销售金额。[/b]

下载相关用例代码[/b][/b]

下载模型生成工具(支持MSSQL,ORACLE[/b])[/b][/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: