Как выбрать нужные столбцы? - PullRequest
0 голосов
/ 09 июля 2019
 var abc =
                from t1 in db.base3
                where db.base2.Any(t2 =>
                          db.base1.Any(t3 =>
                              t3.ed > startDate && t3.ed < endDate  && t3.request_id == t2.request_id
                        ) && t2.link_id == t1.PersonId
                )
                select t1;    

Невозможно выбрать столбцы не только из base3 (t1), но и из base1 (t3) одновременно

1 Ответ

0 голосов
/ 09 июля 2019

С оператором linq, подобным вашему, свойства t2 / t3 не «известны» на самом верхнем уровне.Вы можете видеть это немного как циклы вложенности в C #:

    foreach(var t1 in base3)
{
    // t1 is accessible here
    foreach(var t2 in base2)
    {
        // t1, t2 is accessible here
        foreach(var t3 in base1)
        {
            // t1, t2, t3 is accessible here
        }
    }
}

Кроме того, нет никакой связи между base3-Properties и base1-Properties.Если ваш Linq будет использовать объединения для сущностей, вы можете получить доступ ко всем свойствам, например:

    var abc = (from t1 in db.base3
    join t2 in db.base2 on t1.PersonId equals t2.link_id
    join t3 in db.base1 on t2.request_id equals t3.request_id
    where t3.ed < DateTime.Now && t3.request_id < 20
    select new {t1.PersonId, t3.ed});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...