我的数据库:
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);
当我查询数据库和项目产品时 - &gt; ProductVm我找到没有字段集的FieldValue集合。
我必须使用ProjectTo映射,因为还有其他属性必须映射到视图模型。只有FieldValue必须保持原状。
如何强制AutoMapper在返回的数据中包含此字段?一个限制 - 我必须返回FieldValue类对象。我无法将返回的类更改为其他VM。