我最近研究了一些LINQ源,并决定在我正在开发的项目中使用它。除了一件事,一切都很清楚。
我正在撰写由几张桌子组成的复杂报告。之前我曾使用存储过程。我创建了几个临时的数据,我存储在临时表中,然后使用一系列2表连接将它们连接在一起。
麻烦是: LINQ不允许创建临时表。我知道复杂的查询是以“级联”方式在LINQ中构建的,但如果我这样做,
问题是:我最终会在DataContext.Log中收到什么?我认为这将是一个非常庞大的查询,无法理解并用于调试。我对吗?如果我是,如何为此找到解决方法? DataLoadOptions和LoadWith不会这样做,因为我一次处理所有数据并使用它会导致大量查询。
提前致谢
答案 0 :(得分:0)
LINQ肯定允许创建临时表,它只是实现IQueryable的任何数据类型(列表是一个很好的例子)所以如果你需要一个临时表,你就这样做......
var tempTable1 = [LINQ Query goes here].ToList()
瞧,瞧,你有临时表。如果您不喜欢通用变量,那么您可以创建类并使用List<tableClass>
而不是通用变量。
从这一点开始,您可以在运行LINQ查询时使用新的Var作为选择。如果你需要它持续更长时间,你可以将它存储在Session中或传递变量。