从表中只选择几列

Bee*_*ice 4 .net c# nhibernate

我在使用c#,nhibernate和link时遇到了问题.在下面的例子中,我在BrandTable中做了一个SELECT,但我只需要"Name"和"Id"列.但它总是对表的所有列进行选择.使用EntityFramework,相同的代码生成只有这两列的选择.

如何在nhibernate中执行此操作?

 using (ISession session = MyConnection.GetCurrentSession())
        {
            var brands = from b in session.QueryOver<BrandTable>().List()
                                 orderby b.Name
                                 select new Brand {Id = b.id, Name = b.Name};

            return brands.ToList();
        }
Run Code Online (Sandbox Code Playgroud)

Vas*_*sea 6

您不能对QueryOver使用查询推导,因为它不是Linq提供程序.在您的示例中,您实际上是在选择所有记录,然后使用LINQ to Objects.将NHibernate.Linq命名空间添加到您的文件并将查询重写为

from b in session.Query<BrandTable>()
orderby b.Name
select new Brand {Id = b.id, Name = b.Name};
Run Code Online (Sandbox Code Playgroud)