"Below the test method, in the database, I have the Order and the
OrderDetails but the property OrderDetails in Order class is null all
the time"
Simply assign a Set fitting your needs in the constructor of the
class.
e.g.
public class Order
{
...
public virtual ISet<OrderDetail> OrderDetails { get; set; }
...
public Order()
{
...
OrderDetails = new HashedSet<OrderDetail>();
}
}
Lateron you can add your Details just like:
Order.OrderDetails.Add(OrderDetail);
I do the same with <bag> and IList<T>. Works perfect for my needs.
On Feb 25, 10:28 am, Kris-I <[email protected]> wrote:
> Hello,
>
> I'm not on a deserted island but almost ....
>
> I have 2 tables Order and OrderDetail, below the mappging file, the class...
>
> Below the test method, in the database, I have the Order and the
> OrderDetails but the property OrderDetails in Order class is null all
> the time. When I try to do :
> order.OrderDetails = list, I receive a message not possible to cast
> IList<> to ISet.
>
> Is there a way to do that automatically ?
>
> You can see OrderDetailManager and others xxxxxManager I just call the
> NH method in a transaction in theses method.
>
> using (ISession session = this._helper.GetSession())
> {
> Customer customer;
> CustomerManager customerManager = new
> CustomerManager(session);
>
> customer = customerManager.GetByCode("CUST001")[0];
>
> Order order = new Order();
> order.Code = new Random().Next(0, 100000).ToString();
> order.Price = 5;
> order.Customer = customer;
> order.DateAdded = DateTime.Now;
> order.Price = 65;
> new OrderManager(session).save(order);
>
> Product product;
> ProductManager productManager = new ProductManager(session);
> product = productManager.GetByCode("PROD01")[0];
>
> IList<OrderDetail> list = new
> OrderDetailManager(session).GetById(0);
> list.Add(new OrderDetail(5, 6, product,order));
>
> OrderDetailManager orderDetailManager = new
> OrderDetailManager(session);
> orderDetailManager.save(list);
> }
>
> public class Order
> {
> public virtual int OrderId { get; set; }
> public virtual string Code { get; set; }
> public virtual DateTime DateAdded { get; set; }
> public virtual double Price { get; set; }
>
> public virtual Customer Customer { get; set; }
> public virtual User User { get; set; }
> public virtual ISet<OrderDetail> OrderDetails { get; set; }
> public virtual Invoice Invoice { get; set; }
> }
>
> public class OrderDetail
> {
> public virtual int OrderDetailId { get; set; }
> public virtual double Price { get; set; }
> public virtual int Quantity { get; set; }
>
> public virtual Order Order { get; set; }
> public virtual Product Product { get; set; }
>
> public OrderDetail() { }
>
> public OrderDetail(int qty, double price)
> {
> this.Price = price;
> this.Quantity = qty;
> }
>
> public OrderDetail(int qty, double price, Product product)
> {
> this.Price = price;
> this.Quantity = qty;
> this.Product = product;
> }
> }
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> assembly="MyAssembly" namespace="MyAssembly">
> <class name="MyAssembly.Order,MyAssembly" table="`Order`">
> <id name="OrderId" column="`OrderId`" type="Int32" unsaved-value="0">
> <generator class="native"></generator>
> </id>
> <property name="Code" column="`Code`" type="string" length="50"
> not-null="false"></property>
> <property name="Price" column="`Price`" type="double"
> not-null="false"></property>
> <property name="DateAdded" column="`DateAdded`" type="Date"
> not-null="false"></property>
>
> <!-- Order / OrderDetail -->
> <set name="OrderDetails" table="`OrderDetail`" inverse="true">
> <key column="`OrderId`"/>
> <one-to-many class="MyAssembly.OrderDetail,MyAssembly"/>
> </set>
> </class>
> </hibernate-mapping>
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> assembly="MyAssembly" namespace="MyAssembly">
> <class name="MyAssembly.OrderDetail,MyAssembly" table="`OrderDetail`">
> <id name="OrderDetailId" column="`OrderDetailId`" type="Int32"
> unsaved-value="0">
> <generator class="native"></generator>
> </id>
> <property name="Price" column="`Price`" type="double"
> not-null="false"></property>
> <property name="Quantity" column="`Quantity`" type="Int32"
> not-null="false"></property>
>
> <!-- Order / OrderDetail -->
> <many-to-one name="Order" column="`OrderId`" not-null="true"
> class="MyAssembly.Order,MyAssembly"/>
> <many-to-one name="Product" column="`ProductId`" not-null="true"
> class="MyAssembly.Product,MyAssembly"/>
> </class>
> </hibernate-mapping>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---