4

このようなコードを使用して、テーブルからいくつかのフィールドのみを選択しようとしています

IList<Product> res = sess.QueryOver<Product>()            
             .Select(x =>x.name)           
             .List<Product>();

このコードにエラーはありませんが、実行時に次のようになりました。

そして、誰かが私に製品名と参照されたカテゴリ名の幅だけを取得する方法を教えてくれたらとてもいいでしょう

 IList<Product> res = sess.QueryOver<Product>() 
                .Select(x =>x.name)
                .Select(x=>x.Cat.CategoryName)
                .List<Product>();
4

1 に答える 1

9
IList<string> names = sess.QueryOver<Product>()            
         .Select(x =>x.Name)
         .List<string>();

また

ProductDto product = null;
Category category = null;
IList<ProductDto> res = sess.QueryOver<Product>()
    .JoinAlias(x => x.Category, () => category)
    .SelectList(list => list
        .Select(x => x.Name).WithAlias(() => product.Name)
        .Select(() => category.Name).WithAlias(() => product.CategoryName))
    .TransformUsing(Transformers.AliasToBean<ProductDto>())
    .List<ProductDto>();
于 2012-07-31T12:44:14.413 に答える