标签:
很多时候,批量方案是解决性能的关键
利用 SqlBulkCopy 是性能最高的方式
实现:
var s = dbr.Menu.NewMyOqlSet(); s.AddRow(o => o.Id == 1 & o.Name == "33"); s.AddRow(o => o.Id == 2 & o.Name == "444"); s.BulkCopy2Db();
另外,也提供了: Insert2Db 方法,生成如下SQL:
insert into [S_Menu] ([Name]) output inserted.[ID] values (‘33‘),(‘444‘);
var s = dbr.Menu.NewMyOqlSet(); s.AddRow(o => o.Id == 1 & o.Name == "33"); s.AddRow(o => o.Id == 2 & o.Name == "444"); s.Update2Db(o => o.CorpID == 1, o => new SimpleColumn[] { o.Id }, o => new SimpleColumn[] { o.Name });
Update2Db方法中的
第一个参数是 Where 的条件,表示一个基本的数据约束,用于防止数据污染。可以为 null
第二个参数表示关联的唯一列
第三个参数是 更新时设置的列。
批量推送,是结合批量更新和批量,当有一个数据集,需要更新或添加到数据库中时使用。有则更新,无则添加。
var insertType = dbr.PlatForm.CarType.NewMyOqlSet(); //insertType.添加数据 insertType.Save2Db(o => null, o => o.OtherID, true);
Save2Db方法中的
第一个参数:是更新的条件 。
第二个参数是 更新时,关联的唯一列。
第三个参数表示是否要保留 更新条件结果集 - MyOqlSet结果集。 如: 参数为false , 更新条件是 Id < 100 , MyOqlSet 结果集的Id 是 1-50 ,则删除数据库中 Id 从50到100 的记录。
标签:
原文地址:http://www.cnblogs.com/newsea/p/4530600.html