Spiga

ALinq3 新功能简介 (五)[未完,待续]

2011-10-20 10:45 by 麦舒, 90 visits, 收藏, 编辑

四、动态查询(一)

7、数据处理

1)更新操作

使用 Linq

table.Update(o => new Employee { FirstName = "AAA", LastName = "BBB" }, o => o.EmployeeID == -1);

动态更新

table.Update("FirstName = 'AAA', LastName = 'BBB'", "EmployeeID == -1");

使用参数

table.Update("FirstName = @0, LastName = @1", "EmployeeID == @2", "AAA", "BBB", -1);

更新部份采用 Linq ,过滤条件采用动态

table.Update(o => new { FirstName = "AAA", LastName = "BBB" }, "EmployeeID == -1");

更新部份采用动态,过滤条件采用 Linq

table.Update("FirstName = 'AAA', LastName = 'BBB'", o => o.EmployeeID == -1);

2)插入操作

使用 Linq

var employeeID = table.Insert(o => new Employee { FirstName = "AAA", LastName = "BBB" });

动态插入

var employeeID = table.Insert("FirstName = 'AAA', LastName = 'BBB'");

3)删除操作
使用 Linq

var table = db.GetTable<Employee>();
table.Delete(o => o.EmployeeID == -1);

动态删除

table.Delete("EmployeeID == -1");
table.Delete("EmployeeID == @0", -1);

8、使用索引

1)查询

Linq 查询

var table = db.GetTable<MyEmployee>();
table.Select(o => new { FisrtName = o["FisrtName"], LastName = o["LastName"] }).ToArray();

动态查询

table.Select("new (['FirstName'] as FirstName, ['LastName'] as FirstName)").Cast<object>().ToArray();

简写一:

table.Select("['FirstName'] as FirstName, ['LastName'] as FirstName").Cast<object>().ToArray();

简写二:

table.Select("['FirstName'],  ['LastName']").Cast<object>().ToArray();

简写三:(FirstName,LastName 字段的引号可以不要)

table.Select("[FirstName],  [LastName]").Cast<object>().ToArray();

关于使用索引入进增删改操作,以下的使用,是不允许的:

table.Insert("[FirstName] = 'AAA', [LastName] = 'BBB'");

 

table.Insert("[FirstName] = 'AAA', [LastName] = 'BBB'","[EmployeeID] == -1");

 

应该改写如下:

table.Insert("FirstName = 'AAA', LastName = 'BBB'");

table.Insert("FirstName = 'AAA', LastName = 'BBB'","EmployeeID == -1");


关于动态查询就到此结束了,后面还会有更多精彩内容,请继续关注我的博客。有什么问题或者建议,可以随时给我留言。