我有一个名为Show的属性“Country”是对另一个表的引用。使用NHibernate Criteria API从引用对象获取特定结果的问题
显示类
public class Show
{
public virtual int ID { get; set; }
public virtual Country CountryOrigin { get; set; }
public virtual string EnglishName { get; set; }
}
国家类
public class Country
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
}
我拥有这一切映射和工作,但现在我想获得更具体的结果。我已经使用标准API来获取所有数据并对其进行分类,但现在我只想根据国家/地区名称获取节目。这是我认为会起作用的东西,但实际上并没有。
public IList<Show> AllShowsByCountry(string countryName)
{
IList<Show> shows;
shows = _session.CreateCriteria(typeof(Show))
.Add(Restrictions.Eq("CountryOrigin.Name", "China"))
.AddOrder(Order.Asc("EnglishName"))
.List<Show>();
return shows;
}
我在想,限制的第一部分可能与HQL类似,您可以使用对象。
1)我想的问题是我误解了HQL的工作原理或标准或两者兼而有之?
2)另外你会如何正确使用标准?
更新 这里是我得到
could not resolve property: CountryOrigin.Name of: Entities.Show
你会得到任何错误? – 2010-06-25 02:20:50
这可能会有用。我用它更新了这篇文章。 – percent20 2010-06-25 02:25:38