1

私はそのクエリを持っています:

var group = query.GroupBy(x => new
{
   ...
   TestName =  isSelected ? x.ClassA.Name : "" 
});

var select = group.Select(y => new MyResultDTO()
{
   ...
   TestName = isSelected ? y.First().ClassA.Name : ""  
});

それはうまくいきません...エラーが発生しました:

列 'tblClassA.Name' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。

しかし、groupBy を only に変更した場合 (条件節を取る):

TestName = x.ClassA.Name 

それは正常に動作します...その条件付きの GroupBy/Select をどのように行うことができますか?

私はNHibernate 3.3.1を使用しています

ポール

4

1 に答える 1

1

何を達成したいのかよくわかりませんが、書いてみましたか?

var select = group.Select(y => new MyResultDTO()
{
   ...
   TestName = y.Key.TestName  
});

また、グループに対して次のようなことを試すこともできます。

var group = query.Where(isSel=>isSel.isSelected).GroupBy(x => new
{
   ...
   TestName =  x.ClassA.Name 
})
.Union(query.Where(isSel=>!isSel.isSelected).GroupBy(x => new
{
   ...
   TestName = "" 
});

これが役立つことを願っています

于 2013-01-29T13:05:05.447 に答える