如何在一个批处理中查询不相关表中的实体

时间:2011-06-21 07:23:19

标签: c# castle-activerecord

我想查询不同的表格,比如苹果和汽车,它们之间没有任何关系,因此活动记录只会发送到数据库一次。

伪代码示例:

var q1 = new Query("select * form apple");
var q2 = new Query("select * from car");

var batchQuery = new BatchQuery(q1,q2);
var result = BatchQuery.Execute();  //only one trip to the database

var apples = result[0] as IEnumerable<Apple>;
var cars = result[1] as IEnumerable<Car>;

我尝试过 ActiveRecordMultiQuery ,但所有查询都需要查询同一个表。

1 个答案:

答案 0 :(得分:0)

我不相信有办法做到这一点。

看起来您可能会在这里进行优化:它是否真的会对您的应用程序产生明显的差异,从而进行2次单独的查询?我认为您可以更好地花时间在应用程序的其他位置查找N+1 select查询。

如果一个额外查询的成本 实际上非常重要,那么您可能会遇到数据库服务器或与之连接的问题。