有人可以解释我如何为这个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);
我是这个
的新手答案 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
};