我是新手。
我有两个域类:
- 产品
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
或只是一个Id到Category
?
谁能建议dto的代码?这个结构应该如何被平面化(如果应该的话)并映射到域类?
提前感谢。
我将dto设计为仅用于MVC的特定控制器动作的数据。通常这意味着如果我有一个CategoryController,然后我有一个CategoryIndexModel, CategoryDetailsModel, CategoryEditModel等等。只在屏幕上显示你想要的信息。我尽可能地扁平化,除非我有一个Partial或collection,否则我不创建子dto。