2009-05-30 12 views
0

カテゴリの取得には次のクエリが使用され、カテゴリごとに1つのニュースが使用されます。 LINQを使用してこのクエリを書く方法を教えてくださいこのクエリをLINQに書き込む方法は?

SELECT * FROM News n where n.NewsID IN 
(SELECT TOP 1 NewsID FROM News v 
WHERE v.CategoryID = n.CategoryID 
ORDER BY CreatedOn DESC) 

ありがとうございます。テストされていない

答えて

5

が、このような何かしてみてください:

using (var db = new YourDataContext()) 
{ 
    var results = from n in db.News 
       let v = db.News 
       where n.NewsId == v.Where(c=>c.CategoryId == n.CategoryId) 
        .OrderByDescending(o=>o.CreatedOn).First() 
       select n; 
} 
+0

あなたはVBのためにこれを書くことができますか?上記で間違っていた –

+0

http://www.developerfusion.com/tools/convert/csharp-to-vb/ –

+0

唯一のことは、文が(VARデシベル=新しいYourDataContext()){ VARを使用して でなければなりませんでした結果はdb.News のnからです。v = db.News ここで、n.NewsId == v.Where(c => c.CategoryId == n.CategoryId) .OrderByDescending(o => o.CreatedOn)。最初()。ニュースID 選択n; } NewsIdが最後に見つかりませんでした –

0
var q = from n in dc.News 
     group n by n.CategoryId into g 
     let ti = g.OrderByDescending(x => x.CreatedOn).FirstOrDefault() 
     where ti != null 
     select ti; 
0

をここでは、VBである:

で変換
Using db = New YourDataContext() 
    Dim results = From n In db.News _ 
     Let v = db.News _ 
     Where n.NewsId = v.Where(Function(c) c.CategoryId = n.CategoryId).OrderByDescending(Function(o) o.CreatedOn).First() _ 
     Select n 
End Using 

http://www.developerfusion.com/tools/convert/csharp-to-vb/

+0

私はdeveloperFusionについて最初に言及しました^^ –

+0

投稿している間に私はそれを変換して投稿していました。ちょうど "並行性"の問題です。 :) – andreialecu

+0

開発のフュージョンに言及してくれてありがとうアーニス –

関連する問題