FluentNHibernate一对多映射

问题描述

| 我是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>();
您也可以添加公共方法来添加或删除订单中的商品     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...