如果我有两个对象,比如 ProductOrder 和 Product,我希望它们都能够包含对另一个的多个引用,例如
一个产品可以被多个订单引用一个 ProductOrder 可以包含多个产品。
我试图这样做......
<set name="Products" inverse ="true" cascade="save-update">
<key column="OrderID"/>
<one-to-many class="Product"/>
</set>
public class ProductOrder
{
private ISet<Product> products = new HashedSet<Product>();
public virtual int ID { get; set; }
public virtual Customer Customer { get; set; }
public virtual int NumberOfProducts { get; set; }
public virtual decimal TotalCost { get; set; }
public virtual void AddProduct (Product product)
{
products.Add(product);
}
public virtual ISet<Product> Products
{
get { return this.products; }
set { this.products = value; }
}
}
<set name="Orders" lazy="true" table="ProductOrders">
<key column="ProductID"/>
<one-to-many class="ProductOrder"/>
</set>
public class Product
{
//public virtual Guid Id { get; set; } //Could use Guid, though it's not really readable and harder to find reference in the DB
private ISet<ProductOrder> orders = new HashedSet<ProductOrder>();
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual string Category { get; set; }
public virtual int Count { get; set; }
public virtual bool Discontinued { get; set; }
public virtual void AddOrder(ProductOrder order)
{
orders.Add(order);
}
public virtual ISet<ProductOrder> Orders
{
get { return this.orders; }
set { this.orders = value; }
}
}
我只是无法让它像我期望的那样工作。有什么建议么?