2014-09-04 66 views
-2

我需要写一个LINQ实体状态,可以得到下面的SQL查询LINQ到实体加入表OR条件

SELECT [CallID]  
    ,[AgentID] 
    ,[AgentName]  
    ,[CallQueue] 
    ,[CallStartTimeStamp] 
    ,[CallEndTimeStamp] 
    ,[CallType]  
    FROM [gbrecording].[dbo].[CallInfo] ci 
    join [gbrecording].[dbo].[SCQueues] q on 
    (ci.CallQueue = q.Queue_name or q.Queue_name = 'All') 
    WHERE ([CallStartTimeStamp] >= @from) AND ([CallStartTimeStamp] <= @to) 
    and (q.user_id = @user or q.user_id = 'All') 
    and ci.[AgentID] = @agent 

我有问题,在JOIN条件(ci.CallQueue = q.Queue_name或q.Queue_name = '所有') 我试试这个

var query = from c in recobject.CallInfoes      
      join a in recobject.SCQueues on c.CallQueue equals a.Queue_name 
      join d in recobject.SCUsers on a.user_id equals d.id 
      where 
      c.CallStartTimeStamp <= pto 
      && c.CallStartTimeStamp >= pfrom      
      && d.user == GetUser 
      && (c.AgentID == agent || agent == "All") 
      && c.CallIDChar.Contains(CallID) 
      select new 
      { 
      .... 
      }; 

如何添加条件 “OR q.Queue_name = '所有'” 的实体加盟

join a in recobject.SCQueues on c.CallQueue equals a.Queue_name 
+0

究竟是什么错误?你有错误吗?如果是这样,则发布错误(并在适当的情况下堆栈跟踪)。你得到错误的结果?如果是这样,请发布输入和期望的输出。 – Jonny 2014-09-04 13:35:38

+0

看到您当前的LINQ查询也会有所帮助 – 2014-09-04 13:38:38

+0

我无法找到如何转换SQL查询:join [gbrecording]。[dbo]。[SCQueues] q on(ci.CallQueue = q.Queue_name or q。 Queue_name ='All')这个实体(我的意思是添加条件“或”):加入一个recobject.SCQueues on c.CallQueue等于a.Queue_name – user3132346 2014-09-04 14:31:12

回答

0

您可以将条件(q.Queue_name ='All')也放在where子句中。