批处理(Batch)

Top  Previous  Next

前面已经提到 Database.Save()的批处理支持

 

除此之外,对于SQL Server数据库,NBearLite还提供了两种特殊的批处理支持:

 

1、自定义BatchDatabase批处理语法,支持任意的自定义写操作的批处理。

 

例如:

 

Database batchDB = new Database("Northwind");

batchDB.BeginBatchConnection(10);

batchDB.Insert(Northwind.Categories).AddColumn(Northwind.Categories.CategoryName, "test1111").Execute();

batchDB.Delete(Northwind.Categories).Where(Northwind.Categories.CategoryName == "test1111").Execute();

//More Write Operations

//...

batchDB.EndBatchConnection();

 

注意,BeginBatchConnection()方法的参数指定了每个batch的大小。这里指定batchSize为10表示,每10个SQL语句连接一次数据库进行查询。

 

上例中,如果只包含两条语句,运行时的SQL像下面这样:

 

INSERT INTO [Categories] ([CategoryName]) VALUES (@p8hs4xd4y5pul14);DELETE FROM [Categories] WHERE ([CategoryName] = @p6u03ops2y41ers);        

Parameters:

@p8hs4xd4y5pul14[String] = N'test1111'

@p6u03ops2y41ers[String] = N'test1111'

 

2、ExecuteBatchInsert

 

请参见其他非强类型查询方法