【发布时间】:2010-02-11 19:11:39
【问题描述】:
假设我有以下类结构:
public class State
{
public int Id { get; set; }
public DateTime StatehoodDate { get; set; }
public IList<City> CityList { get; set; }
}
public class City
{
public int Id { get; set; }
public string CityName { get; set; }
}
绑定到 NHibernate 中的以下表格:
CREATE TABLE tblState (
StateId int,
StatehoodDate datetime,
)
CREATE TABLE tblCity {
CityId int,
StateId int,
CityName varchar(1000)
}
*注意:假设在本例中,每个州只有 5-10 个城市。这是一个混淆的例子。 *
我想获取 1900 年之后 StatehoodDate 的所有州。我还想自动加载该州的城市列表,因此不要延迟加载。如何在单个查询中在 NHibernate 中查询这个? (HQL、Criteria 等无关紧要 - 我会使用任何可行的方法。)
我希望有某种方法可以在一个查询中取回所有数据,然后执行相当于“GROUP BY”的操作来获取仅包含 1900 年之后 StatehoodDate 的状态的列表。在我的示例中,我将始终每次运行此查询时显示城市。
延迟加载显然是一种选择,但会影响性能,因为会有初始查询(日期),然后是一个查询
【问题讨论】:
标签: .net nhibernate