将复杂的Business对象转换为ViewModel?

时间:2014-05-28 05:16:16

标签: c# fluent-nhibernate lazy-loading automapper datamapper

我有以下对象:

public class Category {
    public override long Id { get; set; }
    public override string Title { get; set; }
    public override int MaxDepth { get; set; }

    public virtual Category Parent { get; set; }
    public virtual IList<Category> ChildrenNodes { get; set; }
}

我正在使用NHibernate为此检索数据,因为我的列表是LazyLoading, 它应重新映射到CategoryViewModel btw:用于内部用途。

这就是ViewModel的样子...... (例如我没有把所有内容都放在里面)

public class CategoryViewModel {
    public override long Id { get; set; }
    public override string Title { get; set; }
    public virtual CategoryViewModel Parent { get; set; }
    public IList<CategoryViewModel> ChildrenNodes { get; set; }
}

我正在使用我编写的这种扩展方法。

 public static TOut Map<TIn, TOut>(this TIn source)
        where TIn : class
        where TOut : new() {
        return Mapper.Map<TIn, TOut>(source); // ThiSMember
 }

现在的问题是:

如何使用递归映射复合对象? 在ThisMemer示例中我没有找到答案。

Automapper因为NHibernate LazyLoading而失败了。

你能建议其他地图制作者吗?

0 个答案:

没有答案