0

私は言う機能を持っています

GetGroupByData(DateTime p1,DateTime p2) 
{
    var data = dbContex.tableName
                       .Where(someconditions)
                       .GroupBy(x=>SqlScalarFunction(x.DateStart,p1));
}

     CREATE FUNCTION dbo.SqlScalarFunction(@Date DateTime, @DateFirst DateTime) 
     RETURNS Int 
     AS 
       BEGIN 
        RETURN Cast((cast(@Date - @DateFirst as float) / 7.0) as int) + 1
         END

エラーが発生します:

列 'tableName.DateStart' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。
ステートメントを準備できませんでした。

欲望のグループ化を達成するにはどうすればよいですか?

4

2 に答える 2

1

私は問題を解決しました

GetGroupByData(DateTime p1,DateTime p2) 
{
 var function = "dbo.SqlScalarFunction({0}, '" + p1.ToString("yyyy-MM-dd HH:mm:ss") + "')";
   var data = dbContex.tableName.Where(someconditions)
   .GroupBy(x => function.SQL<Int32>(x.DateStartUTC));
}

ここで解決策を見つけました:http://www.telerik.com/forums/converting-to-datetime-in-where-clause

于 2014-08-20T23:01:53.103 に答える