NHibernate 투영에 익숙하지 않습니다. IList <>이 아닌 List <>을 반환 할 수 있도록 사용하려고합니다. 나는 아직 DTO에 투영하는 데 많은 행운이 없다. 다음과 같은 쿼리 및 도메인 개체가 있습니다. 그래서 EmployeeID가 주어진 Orders 목록을 얻으려고합니다. 나는이 목록을 serialize 할 수 있기를 원하기 때문에 결과 목록을 반복하고 List에 추가하고 있습니다. 아무도 내가 투영과 얼마나 멀리 떨어져 있는지 말할 수 있습니까? 나는 내 자신과 비슷하지 않은 몇 가지 예를 수색하고 발견했다. 기본적으로 .. 단지 DTO리스트를 만들고 싶습니다.NHibernate 투영 DTO
감사합니다.
public List<EmployeeOrder> GetEmployessOrdersDTO(int empid)
{
var emporders = new List<EmployeeOrder>();
ICriteria criteriaSelect = NHibernateSessionManager.Instance.GetSession().CreateCriteria(typeof (Orders))
.CreateCriteria("Employees")
.Add(Expression.Eq("EmployeeID", empid));
criteriaSelect.SetProjection(
Projections.ProjectionList()
.Add(Projections.Property("Products"), "OrderedProducts"));
criteriaSelect.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(EmployeeOrder)));
criteriaSelect.List<EmployeeOrder>();
foreach (var order in emporders)
{
emporders.Add(order);
}
return emporders;
}
주문 :
public class Orders
{
public virtual int OrderID { get; private set;}
public virtual string CustomerID { get; set; }
public virtual DateTime OrderDate { get; set; }
public virtual DateTime RequiredDate { get; set; }
public virtual DateTime ShippedDate { get; set; }
public virtual Employees Employee { get; set; }
public virtual IList<Products> Products { get; private set; }
}
직원 수 :
public class Employees
{
public virtual int EmployeeID { get; private set;}
public virtual string LastName { get; set;}
public virtual string FirstName { get; set;}
public virtual string City { get; set; }
public virtual DateTime HireDate { get; set; }
public virtual string Title { get; set; }
public virtual IList<Orders> Orders { get; private set; }
}
EmployeeOrderDTO :
public class EmployeeOrder
{
public virtual string EmployeeName { get; set; }
public virtual string EmployeeTitle { get; set; }
public virtual DateTime RequiredDate { get; set; }
public virtual List<Products> OrderedProducts { get; set; }
}