我试图用我这样的代码中的某些字段选择
IList<Product> res = sess.QueryOver<Product>()
.Select(x =>x.name)
.List<Product>();
此代码没有错误,但在运行时我得到了:“无法执行查找[SQL:SQL不可用]”值“Prod1不是SympleFlhLINQ.Product类型,并且不能在此通用集合上使用”。
如果有人告诉我如何只获取产品名称和引用的类别名称宽度,这将是非常好的
IList<Product> res = sess.QueryOver<Product>()
.Select(x =>x.name)
.Select(x=>x.Cat.CategoryName)
.List<Product>();
答案 0 :(得分:8)
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>();