我有som实体,现在想根据使用nhibernate的实体制作一些DTO。
我有一个服务 - 分配 - 资源,其中分配描述了如何为服务分配资源。
我想要像
这样的DTOServiceDTO -名称 -RessourceDTO
其中RessourceDTO也有名字。
在我看到的NHibernate投影/ DTO示例中,您可以使用属性或构造函数。如果我使用构造函数方法,我会有类似
的东西ServiceDTO(名称,列表
但我无法弄清楚如何使这项工作。
另一种方法是提取所有服务,然后循环遍历它们并每次点击数据库,或者提取更大的结果然后制作DTO的
最好的方法是什么?我将在存储库中隐藏所有这些内容。
答案 0 :(得分:1)
怎么样
public ServiceDTO GetDTOFor(int Id);
{
var service = Session.CreateCriteria<Service>()
.Add(Restrictions.Eq("Id", id)
.SetFetchMode("Resources", fetchmode.eager) // eager load resources
.uniqueResult<Service>();
return new ServiceDTO(service.Name, service.Resources.ToList()) // Copy the Resources
}