我在使用 C#、nhibernate 和链接时遇到了问题。在下面的示例中,我在 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();
}
最佳答案
您不能将查询理解与 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};
关于c# - 从表中仅选择几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6776126/