问题描述
|
我是NHibernate和FNH的新手。以下是我要实现的基本方案
有两个实体映射器类\“ Customer \”和\“ Order \”
顾客
Table(\"CUSTOMERTEST\");
LazyLoad();
Id(x => x.CustomerId).Column(\"CustomerId\").GeneratedBy.Sequence(\"SYS\");
Map(x => x.CompanyName).Column(\"CompanyName\");
Map(x => x.ContactName).Column(\"ContactName\");
HasMany(x => x.Orders).KeyColumn(\"CustomerId\").Cascade.All().Table(\"ORDERTEST\").AsBag();
订购
Table(\"ORDERTEST\");
LazyLoad();
Id(x => x.OrderId).Column(\"OrderId\").GeneratedBy.Sequence(\"SYS\");
References(x => x.OrderedBy).Column(\"CustomerId\");
References(x => x.ProductDetails).Column(\"ProductId\");
Map(x => x.OrderDate).Column(\"OrderDate\");
Map(x => x.ShipToName).Column(\"ShipToName\");
我正在尝试通过客户实体类中的以下属性获取特定客户的订单详细信息。
public virtual IList<Order> Orders {
get { return new List<Order>(orders).AsReadOnly(); }
protected set { orders = value; }
}
但是我可以在客户实体对象中获取客户详细信息,但是对于特定客户,他的“订单”始终为空。我没有执行任何更新操作,我只需要仅从DB中获取数据。艾米(Amy)我做错了什么,或者怎么办呢?
提前致谢
解决方法
在您的客户类别中:
public virtual IList<Order> Orders
{
get { return _orders; }
}
private readonly IList<Order> _orders = new List<Order>();
您也可以添加公共方法来添加或删除订单中的商品