我的数据库:
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。