Orchardcms 正在从多个IRepository获取结果

Orchardcms 正在从多个IRepository获取结果,orchardcms,Orchardcms,我有一个用户和订单列表 public class UserRecord { public virtual int UserId { get; set; } public virtual string Name { get; set; } } public class OrderRecord { public virtual int UserId { get; set; } public virtual int OrderId { get; set; } } 我

我有一个用户和订单列表

public class UserRecord
{
    public virtual int UserId { get; set; }
    public virtual string Name { get; set; }
}

public class OrderRecord
{
    public virtual int UserId { get; set; }
    public virtual int OrderId { get; set; }
}
我有两个存储库-IRepository和IRepository。我怎样才能把这两个结合起来,得到这样的结果呢

选择UserRecord.UserId、Name、OrderId 从UserRecord、OrderRecord 其中UserRecord.UserId=OrderRecord.UserId


谢谢。

改用ContentManager上的HQL API。存储库用于在单个表上执行简单的CRUD操作。

要使用ContentManager,用户和订单记录都必须是内容部分?是否有一个HQL示例查询用于连接两个表/内容部分?HQL原则上应该启用您可以使用常规nHibernate执行的任何查询。Projector和HqlExpressionTest.cs中都有示例。您还可以直接获取nHibernate会话,并从那里执行任意Hql甚至SQL查询。在OrchardPo模块中有一个这样的例子。当我尝试使用ISession时,我遇到了一个异常<代码>代码公共MyController(…ISession session…
code
。我得到了这个异常-Autofac.Core.dependencResolutionException:在类型“MyController”上找到的策略为“Orchard.Environment.autofacuti.dynamicProxy 2.ConstructorFinderWrapper”的构造函数都不能使用可用的服务和参数调用:构造函数“Void.ctor”(Orchard.Data.IRepository
1[UserRecord],Orchard.Data.IRepository
1[OrderRecord],NHibernate.ISession)'参数解析在参数'NHibernate.ISession session'处失败。因为ISession不是从IDependency派生的。这不是获取会话的方式。如果您查看了OrchardPo,您会发现您需要注入的是ISessionLocator。一旦有了它,您可以调用它来获取实际的会话对象。我尝试了是,_session=_sessionLocator.For(typeof(UserRecord))IQuery qry=_session.CreateQuery(“from UserRecord as user where user.UserId=1”);我收到一个错误,说UserRecord未映射。