オブジェクトをデータベースに保存するためのこのコードがあり、正常に機能します。
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(データベースに既に存在し、秘密鍵を持っているエンティティのみを意味します)のみを送信する場合、注文を保存できますか?