0

次のクラスがある場合

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;
            }
        }
4

1 に答える 1

1
Model.Order order = _session.CreateCriteria(typeof(Order))
    .Add(Restrictions.Eq("Id", id))
    .SetFetchMode("OrderItems", FetchMode.Eager)
    .UniqueResult<Model.Order>();
于 2012-05-14T12:46:19.337 に答える