2

我的数据库:

public class Product
{
    public int Id { get; set;}
    public ICollection<FieldValue> FieldValues { get; set;}
    // other properties
}

public class FieldValue
{
    public int Id { get; set; }
    public int FieldId { get; set; }
    public int ProductId { get; set; }
    public Field Field { get; set; }
    public Product Product { get; set;}
}

public class Field
{
    public int Id { get; set;}
    public string Name { get; set;}
}

我的视图模型和映射:

public class ProductVm
{
    public IEnumerable<FieldValue> FieldValues { get; set; }
    // other view models
}

this.CreateMap<Product, ProductVm>()
// other properties mappings
;

如您所见,我在我的 ProductVm 视图模型中使用 FieldValue 实体类。

我的数据库查询很简单:

var productViewModel = context.Products.ProjectTo<ProductVm>().First(p => p.Id == productId);

当我查询数据库和项目 Product -> ProductVm 时,我发现没有设置字段的 FieldValue 集合。

我必须使用 ProjectTo 映射,因为还有其他属性必须映射到视图模型。只有 FieldValue 必须保持不变。

如何强制 AutoMapper 将此字段包含在返回的数据中?一个限制 -我必须返回 FieldValue 类对象。我无法将返回的类更改为其他 VM。

4

0 回答 0