在linq中加入的性能

时间:2010-06-07 04:58:18

标签: linq stored-procedures

HI,

我将在LINQ中重写一个存储过程。

这个sp正在做的是连接12个表并获取数据并将其插入另一个表中。

它有7个左外连接和4个内连接。并返回一行数据。

现在提问。 1)在linq中实现此连接的最佳方法是什么。 2)你认为这会影响性能(它只能在给定的时间点检索一行数据)

请建议。

由于 SNA。

1 个答案:

答案 0 :(得分:0)

您可能需要检查this question多个连接。我通常更喜欢lambda语法,但更喜欢YMMV。

至于性能:我怀疑查询性能本身是否会受到影响,但是在确定执行计划时可能会有一些开销,因为它是如此复杂的查询。
最大的性能损失可能是额外的数据库往返您将需要与存储过程进行比较。如果我理解正确,您当前的SP会立即执行SELECT AND INSERT。使用LINQ to SQL或LINQ to Entities,您需要先获取数据,然后才能将它们实际写入另一个表。

因此,如果需要重写,则取决于您的使用情况。或者,您可以将存储过程添加到数据模型中。它将作为数据上下文的方法公开。