我将 Nhibernate 与 SQL Server 2008 一起使用。
我正在尝试执行以下代码:
var localization = session.QueryOver<T>()
.Where(idFilter).AndRestrictionOn(x => x.Language.IETFTag).IsLike(tag + "%").SingleOrDefault();
但是,我在该行上遇到一个异常,说 nhibernate 无法解析属性 Language.IETFTag (或类似的东西)。
我曾尝试使用 JoinQueryOver() 但它抱怨我在 FROM 子句中有多个相关性或类似的奇怪东西。只是觉得我做错了什么。我怎样才能做我想做的事?
我有以下映射:
internal class LocalizationMapping : ClassMap<Localization>
{
public LocalizationMapping()
{
UseUnionSubclassForInheritanceMapping();
Id(x => x.Id).GeneratedBy.HiLo("HiLo", "NextHi", "1000");
References(x => x.Language);
}
}
internal class LanguageMapping : ClassMap<Language>
{
public LanguageMapping()
{
Id(x => x.Id);
Map(x => x.DefaultName);
Map(x => x.IETFTag);
}
}
internal class ArticleLocalizationMapping : SubclassMap<ArticleLocalization>
{
public ArticleLocalizationMapping()
{
Map(x => x.Name);
Map(x => x.Description);
References(x => x.Article);
}
}