我是一个新的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”,但我不知道如何定义它。
感谢您帮助一个菜鸟!
答案 0 :(得分:0)
您是否浏览过Castle ActiveRecord tutorial?
我注意到的一件事是你没有对象关系,而是 key 关系。要按照预期的方式使用NHibernate和Castle ActiveRecord,您的对象模型应该具有对象之间的关系。
这意味着您的Order
类应具有User
属性,该属性指向UserAccount
的实例。您的UserAccount
课程应该有一个Orders
集合。根据我的经验,这应该是ISet<Order>
,您可以在UserAccount
构造函数中将其初始化为HashedSet<Order>
。