【发布时间】:2011-12-29 10:50:23
【问题描述】:
在查询具有子 POCO 属性对象的对象时,我似乎遇到了错误:
could not resolve property: PreferredLanguage.Name of: AcademyData.Entities.StudentsInformation
我的查询:
Session.QueryOver<StudentsInformation>().Where(x => x.Active == 1 && x.PreferredLanguage.Name == firstName).List()
如果我删除 x.PreferredLanguage.Name 条件,它会起作用,并且我会看到对象的正确 Name 值,但它不会让我将其用作查询。我做错了什么?
这是我的映射:
References(x => x.PreferredLanguage).Column("PreferredLanguageID");
此外,我已将我的 POCO 和映射拆分为 2 个单独的程序集,如果这有什么不同的话。我这样配置映射:
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<AcademyData.Dummy>().AddFromAssemblyOf<data.core.Dummy>())
忽略假人,正在用它来测试一些东西。
编辑:我已经使用来自同一程序集的实体对其进行了测试,但问题仍然存在。 编辑:
我找到了解决问题的方法:
return SessionManager.Session.QueryOver<StudentsInformation>().JoinQueryOver<PersonBase>(s => s.Person).Where(p => p.FirstName == firstName).List();
这是正确的做法吗,还是我仍然可以在没有 JoinQueryOver 的情况下为不同的表执行此操作?
【问题讨论】:
标签: sql nhibernate fluent