2015-10-27 52 views
2

我有我想改變它到LINQ實體框架查詢, 我的查詢是:什麼是我的查詢linq?

(from l in db.PageLayouts 
where l.ZoneName == zone.Name 
join p in db.PageLayouts 
on l.PageId equals p.PageId 
where p.ZoneName == PageName 
orderby l.AppearanceOrder 
select l).ToList(); 

有沒有人幫我把它轉換?

+8

已經是LINQ的,沒有必要去改變它 – Jcl

+0

是的,已經在LINQ的格式。 –

+0

實體框架查詢已經在linq語法中,因此是linq查詢。因此,無論您是否在您的問題中混淆了事情,或者您應該解釋一下您需要做的更詳細的事情,因爲目前看起來您已經用問題內容解決了自己的問題。 – Thomas

回答

1

您的查詢已經是Linq。我猜在這裏,但我想你想將它更改爲流利(或「方法的語法」),如果是這樣,這裏是直接翻譯

db.PageLayouts.Where(x => x.ZoneName == zone.Name) 
       .Join(db.PageLayouts, 
        l => l.PageId, 
        p => p.PageId, 
        (l,p) => new { l,p }) 
       .Where(z => x.p.ZoneName == PageName) 
       .OrderBy(x => x.l.AppearanceOrder) 
       .Select(x => x.l) 
       .ToList(); 

我不認爲你的加盟品牌很有道理,但我只是改變了從linq到流利的語法。

PS:這個答案很快,沒有想太多雕琢,小心輕放

0

我們在LINQ中有查詢語法和方法語法。見this

//Query syntax: 
IEnumerable<int> numQuery1 = 
    from num in numbers 
    where num % 2 == 0 
    orderby num 
    select num; 

//Method syntax: 
IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n); 

在介紹語言集成查詢(LINQ) 文檔大多數查詢使用LINQ查詢聲明語法編寫。 但是,在編譯代碼時,必須將查詢語法翻譯爲對公共語言運行庫(CLR)的方法調用 。這些 方法調用會調用標準查詢運算符,其名稱爲 ,如Where,Select,GroupBy,Join,Max和Average。您可以直接使用方法語法而不是查詢語法來調用 。