几个linq查询查询

时间:2014-06-17 04:13:42

标签: sql linq linqpad query-performance

以下代码使用linq命中数据库3次。 (使用LinqPad进行测试)

我可以在t-sql中编写语句,并使用select中的一个选中的一个数据库命中执行相同的调用。

LINQ(3次数据库点击)

var cId = "11";

int[] eIds = (
from e in App_events 
where e.cId == cId && e.CategoryID == 3 && e.Active
select e.Id).ToArray();

int[] tIds = (
from t in App_event_tasks where eIds.Contains(t.EventID)
select t.ActionID).ToArray();

var data = (
from tr in App_trackings
where tIds.Contains(tr.ActionID)
select tr).ToList();

data.Dump();

SQL(一个数据库命中)

select * from app_tracking where actionID in 
(
    select actionID from app_event_task where eventID in (
     select id from app_event where cId = 11 and categoryID = 3 and active = 1
      )
   )

如何在Linq中重写此内容,以便只访问一次数据库?

0 个答案:

没有答案