Кодировать то же самое в LINQ, когда у вас есть SQL в старом добром SQL - PullRequest
2 голосов
/ 28 марта 2012

Как бы вы начали кодировать это в LINQ? У меня все работает нормально в SQL, но я все еще новичок в LINQ, когда хочу сделать что-то, чего раньше не пробовал.

select * from waste 
where wasteid in (select x.wasteid
                from wasteindicatoritem x,wasteindicator r,hazardtype t  
                where x.wasteindicatorid = r.wasteindicatorid 
                and t.hazardtypeid = r.hazardtypeid 
                group by x.wasteid,t.Hazardous
                having count(*) >= 1 and t.hazardous = 0)

Заранее спасибо

1 Ответ

1 голос
/ 28 марта 2012

Может быть, что-то вроде этого:

var result= (
        from waste in db.waste
        where
            (
                from x in db.wasteindicatoritem
                join r in db.wasteindicator
                    on x.wasteindicatorid equals r.wasteindicatorid
                join r in db.hazardtype
                    on t.hazardtypeid equals r.hazardtypeid
                where
                    waste.wasteid==x.wasteid
                group new{x,t} by new{x.wasteid,t.Hazardous} into g
                select new
                {
                    nbrOf=g.Count(),
                    g.Key.Hazardous
                }
            ).Where(a=>a.nbrOf>=1 && Hazardous==0)
        select waste
    );

Где db - контекст данных linq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...