我将使用Entity Framework 6和Automapper来映射实体到DTO。
以下是我的数据模型:
public class PersonDto
{
public int Id { get; set; }
public string Name { get; set; }
public AddressDto Address { get; set; }
}
public class AddressDto
{
public int Id { get; set; }
public string Street { get; set; }
public string City { get; set; }
}
我使用 AutoMapper Queryable Extension 来将数据传输对象 (DTO) 从实体中映射出来。
var personDto = dbContext.People.Project().To<PersonDto>();
上述方法的问题在于它会使EF始终加载地址实体。 我希望只有在明确告诉它们要包含(x => x.Address)时,才会加载地址。 如果我在automapper映射中指定ignore(),则地址将不会被加载。 是否有可能在运行时告诉automapper忽略地址属性? 我正在使用的Automapper查询扩展程序不支持所有功能,如“条件或映射后”。 是否有任何解决方法?