SQLServer2008でNhibernateを使用しています。
次のコードを実行しようとしています。
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);
}
}