【发布时间】:2011-01-21 01:21:04
【问题描述】:
我映射了以下两个类:
public class Foo
{
public virtual Guid Id { get; set; }
public virtual Bar Bar { get; set; }
}
public class Bar
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
}
我有以下标准:
return Session.CreateCriteria<Foo>("f")
.CreateAlias("f.Bar", "b")
.SetProjection(Projections.Property("f.Bar"))
.List<Bar>();
这会生成以下 SQL:
select b.Id from Foo f
inner join Bar on f.BarId = b.Id
注意如何只返回 Bar 的 Id,而不是整个类。如何获取 Bar 的所有列?
【问题讨论】:
-
在您的代码示例中,您声明 .List
(); ,但是您说只返回 Bar 的 Id。这是否意味着您会得到一个只有 Id 属性被水合的 Bar 列表? -
您可能需要考虑切换到 HQL,除非您有特定要求迫使您使用标准(动态搜索通常是最重要的)。
标签: nhibernate