我内容部分增加了一个一对一的关系:在控制器我做果园查询加盟实体
OnInitializing<AddResellerPart>(PropertySetHandlers);
OnLoaded<AddResellerPart>(LazyLoadHandlers);
...
现在,如果:
public class AddResellerPart : ContentPart<AddResellerPartRecord>
{
private readonly LazyField<ResellerPart> _reseller = new LazyField<ResellerPart>();
public LazyField<ResellerPart> ResellerField { get { return _reseller; } }
public ResellerPart Reseller
{
get { return _reseller.Value; }
set { _reseller.Value = value; }
}
...
我已经实现了处理器像这样:
var customer = _orchardServices.ContentManager
.Query<AddResellerPart, AddResellerPartRecord>()
.List().First();
var name = customer.Reseller.Description;
它的作品就像一个魅力!但是,如果我试试这个:
var customer = _orchardServices.ContentManager
.Query<AddResellerPart, AddResellerPartRecord>()
.Where(x => x.Reseller.Description.Contains(filterDescription))
.List().First();
我得到的错误:
"could not resolve property: Reseller.Descriptionof:
myproject.Core.Models.AddResellerPartRecord"
我觉得这金正日有关的事实,实体之间的连接是由处理器管理和NHibernate一无所知AddResellerPart和经销商关系。
我也tryied以这种方式来覆盖制图:
public class PersistenceConfiguration : ISessionConfigurationEvents {
public void Created(FluentConfiguration cfg, AutoPersistenceModel defaultModel) {
defaultModel.Override<AddResellerPart>(mapping => mapping.References(x => x.Reseller, "Reseller_Id"));
}
似乎没有任何改变!
我该如何做到这一点?
你能清理代码吗?看起来好像有一些错误的复制和粘贴:你有AddResellerPart和AddResellerPartPart。 –
对不起,不好剪贴!完成! – danyolgiax
我认为你需要切换到HQL,并从那里明确地加入。 –