2015-10-27 5 views
-6

Может кто-нибудь объяснить мне, как писать эквивалентный запрос LINQ для этого SQL запросаЧто такое запрос linq для операторов sql?

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
db.tblResponseTypeEntitieDB.Where(el => el.ResponseType.Id = 1).ToList() 

Условия:

  • Отношения правильно заполнены в течение вашего юридическое лицо, ...

Кроме того, мы не имеем много контекста ...

0

Мы можем сначала попробовать, как два запроса:

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

Это будет работать, но требуют два круглых поездки в DataServer.

Хорошо, дальше, давайте предположим, что у вас есть вам внешние ключи, установленные прямо, так что 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 
        }; 
Смежные вопросы