NHibernate DTO父子关系

时间:2009-07-24 21:33:54

标签: nhibernate

我有som实体,现在想根据使用nhibernate的实体制作一些DTO。

我有一个服务 - 分配 - 资源,其中分配描述了如何为服务分配资源。

我想要像

这样的DTO

ServiceDTO -名称 -RessourceDTO

其中RessourceDTO也有名字。

在我看到的NHibernate投影/ DTO示例中,您可以使用属性或构造函数。如果我使用构造函数方法,我会有类似

的东西

ServiceDTO(名称,列表

但我无法弄清楚如何使这项工作。

另一种方法是提取所有服务,然后循环遍历它们并每次点击数据库,或者提取更大的结果然后制作DTO的

最好的方法是什么?我将在存储库中隐藏所有这些内容。

1 个答案:

答案 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
}
相关问题