Castle ActiveRecord加入

时间:2011-06-17 13:13:16

标签: castle-activerecord

我是一个新的Castle ActiveRecord用户,现在我发现有必要做一个涉及JOIN的选择。我不知道该怎么做。

这是我的两个(样本)课程:

[ActiveRecord("Orders")]
public class Order : ActiveRecordBase<Order>
{
   [PrimaryKey(PrimaryKeyType.Identity)]
    public int OrderID { get; set; }

    [Property]
    public int UserID { get; set; }

    [Property]
    public DateTime OrderDate { get; set; }

    [Property]
    public string ShipName { get; set; }

}

[ActiveRecord("Users")]
public class UserAccount : ActiveRecordBase<UserAccount>
{
    [PrimaryKey(PrimaryKeyType.Identity)]
    public int UserID { get; set; }

    [Property]
    public string FirstName { get; set; }

    [Property]
    public string LastName { get; set; }

}

现在,如果我想获得所有订单,以及UserAccount.FirstName和UserAccount.LastName,我该如何做?通过我的阅读,我需要创建另一个类,如“OrdersWithUserAccount”,但我不知道如何定义它。

感谢您帮助一个菜鸟!

1 个答案:

答案 0 :(得分:0)

您是否浏览过Castle ActiveRecord tutorial

我注意到的一件事是你没有对象关系,而是 key 关系。要按照预期的方式使用NHibernate和Castle ActiveRecord,您的对象模型应该具有对象之间的关系

这意味着您的Order类应具有User属性,该属性指向UserAccount的实例。您的UserAccount课程应该有一个Orders集合。根据我的经验,这应该是ISet<Order>,您可以在UserAccount构造函数中将其初始化为HashedSet<Order>