2011-12-27 21 views
3

私は、統計テーブルからUrlフィールドを選択、グループ化、並べ替えるSQLを持っています。 getDomainが格納されています。このSQLをLinqに書き直そうとしています。誰かがそれを行う方法を説明してください?LINQからSQLへの変換機能

SELECT dbo.getDomain(Url) as url 
FROM Statistic 
GROUP BY dbo.getDomain(Url) 
HAVING COUNT(Url) > 1 
ORDER BY COUNT(Url) 

答えて

3

まず、あなたは他のテーブルとプロシージャの定義が含まれていdefine your UDF in the .DBML fileする必要があります。次に、LINQクエリ内でCall any UDF function inlineを使用できます。このように:

var results = from s in dbo.Statistic 
       groub s by dbo.getDomain(s.url) into g 
       where g.Count() > 1 
       orderby g.Count() ascending 
       select new 
       { 
        URL = dbo.getDomain(g.Key) 
       }; 
+0

+1 LINQ to SQLでは、まず関数を設定する必要があります。あなたはそれを無料で手に入れません。 – Yuck

+1

'count()'?たぶん 'カウント()'? – abatishchev

+0

'dbo.getDomain(g.url)を選択する'のエイリアス方法は?私は列の名前を与えたい。 SQLでは、 'Field as url'と書いてありますが、Linqでそれを行う方法は? – Tomas