次のクラスがある場合
public class Order
{
public virtual ISet<OrderItem> OrderItems { get; set; }
}
public class OrderItem
{
public virtual Product Product { get; set; }
}
OrderItem は、product と 1 対 1 の関係にあります。1 つの SQL リクエストからこれらすべてを取得するのに最も効果的なのは何でしょう。
私はnhibernate基準APIを使用しています。orderitems と product を jointypes として追加するにはどうすればよいですか
using (ITransaction transaction = _session.BeginTransaction())
{
try
{
Model.Order order = _session
.CreateCriteria(typeof(Order))
.Add(Restrictions.Eq("Id", id))
.CreateAlias("OrderItems", "orderItems", JoinType.xxxx)
.UniqueResult<Model.Order>();
transaction.Commit();
return order;
}
catch (HibernateException)
{
transaction.Rollback();
_session.Close();
_session.Dispose();
throw;
}
}