我有这段代码用于将我的对象保存到数据库中,它工作正常。
public int CreateOrder(OrderDB orderDB)
{
using (ISession session = sessionFactory.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
try
{
session.SaveOrUpdate(orderDB.Car);
session.SaveOrUpdate(orderDB.Owner);
for (int i = 0; i < orderDB.Service.Count; i++)
{
session.SaveOrUpdate(orderDB.Service[i]);
}
session.SaveOrUpdate(orderDB);
transaction.Commit();
}
catch (Exception e)
{
throw;
}
}
}
return orderDB.ID;
}
实体:
public class OrderDB:BasicRecordDB
{
public virtual int ID { get; set; }
public virtual IList<Service> Service { get; set; }
public virtual Owner Owner { get; set; }
public virtual Car Car { get; set; }
public virtual Box Box { get; set; }
public virtual double TotalPrise { get; set; }
public virtual int OrderNumber { get; set; }
}
public class Car
{
public virtual int ID { get; set; }
public virtual string CarNumber { get; set; }
public virtual Model Model { get; set; }
}
例如,实体模型(在汽车中)已经包含在数据库中,为了保存订单应该只是模型 ID 就足够了,但现在它从客户端向服务器发送所有实体汽车和具有所有属性的模型。如果我只发送实体 ID(我的意思是已经在数据库中并拥有私钥的那个实体),我怎么能保存订单?