我是使用DTO的新手。
我有两个域类:
如下
public class Category
{
// Properties
public int Id { get; set; }
public string Name { get; set; }
// Navigation properties
public virtual Category ParentCategory { get; set; }
// Foreign key
public int? ParentCategoryId { get; set; }
// Collections
public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Category> Subcategories { get; set; }
}
public class Product
{
// Properties
public int Id { get; set; }
public string Name { get; set; }
// Navigation property
public virtual Category Category { get; set; }
// Foreign key
public int CategoryId { get; set; }
}
我想使用Automapper。
我不确定如何为上面的聚合(图表)设计DTO。
CategoryDTO
应该有ProductDTO
类型的集合还是Product
类型的集合?ProductDTO
应该CategoryDTO
作为导航属性还是Category
,还是只有Category
的ID?有人可以建议DTO的代码吗? 该结构应该如何展平(如果应该)并映射到域类?
非常感谢提前。
答案 0 :(得分:1)
我将DTO设计为仅用于MVC的特定控制器操作的数据。通常这意味着如果我有一个CategoryController,那么我有一个CategoryIndexModel,CategoryDetailsModel,CategoryEditModel等等。只包括你想要的信息在该屏幕上。我尽可能地压扁,除非我有部分或收藏品,否则我不会创建儿童DTO。