AutoMapper + ProjectTo - 使用navigation属性映射到实体类

时间:2017-10-27 00:11:21

标签: c# entity-framework automapper object-object-mapping

我的数据库:

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。

0 个答案:

没有答案