以下sql语句的linq查询是什么?

时间:2015-10-27 09:25:05

标签: .net sql-server linq

有人可以解释我如何为这个SQL查询编写等效的LINQ查询

select  t1.Description,t2.Description,t1.ReponseTypeID 
from tblResponseType t1
   inner join tblPartnerServiceResponseType t2 
      on t1.ReponseTypeID = t2.ReponseTypeID
where t1.ReponseTypeID = (select ReponseTypeID
                          from tblPartnerServiceResponseType
                          where PartnerServiceID = 1);

我是这个

的新手

2 个答案:

答案 0 :(得分:0)

db.tblResponseTypeEntitieDB.Where(el => el.ResponseType.Id = 1).ToList()

条件:

  • 您的实体内正确填写了关系,......

另外,我们没有太多背景......

答案 1 :(得分:0)

我们可以先尝试两个查询:

var psrt = tblPartnerServiceResponseType.FirstOrDefault(srt => srt.PartnerServiceID == 1);
if (psrt != null)
{
    var rt = tblResponseType.FirstOrDefault(rt => rt.ReponseTypeID == psrt.ReponseTypeID);
}

这将有效,但需要两次往返数据服务器。

好的,接下来,让我们假设你已经设置了正确的外键,以便tblPartnerServiceResponseType中有一个tblResponseType属性:

var query = from t2 in tblPartnerServiceResponseType
            where t2.PartnerServiceID == 1
            select new {Desc1 = t2.tblResponseType.description, 
                        Desc2 = t2.Description,
                        t2.ReponseTypeID
                        };

最后,如果你没有设置外键(你真的应该!),那么我们必须进行显式连接:

var query = from t2 in tblPartnerServiceResponseType
            join t1 in tblResponseType on t2.ReponseTypeID equals  t1.ReponseTypeID
        where t2.PartnerServiceID == 1
        select new {Desc1 = t1.Description, 
                    Desc2 = t2.Description,
                    t2.ReponseTypeID
                    };