我正在尝试使用 AutoMapper 3 将具有 Integer 属性的类投影到具有 String 属性的另一个类。
执行查询时,我得到以下异常:
System.NotSupportedException:LINQ to Entities 无法识别方法“System.String ToString()”方法,并且该方法无法转换为存储表达式。
以下是代码的相关部分:
public partial class Lookup
{
public int LookupId { get; set; }
public int LookupTypeId { get; set; }
public string Value { get; set; }
public int SequencialOrder { get; set; }
public virtual LookupType LookupType { get; set; }
}
public class LookupProfile : Profile
{
protected override void Configure()
{
CreateMap<Lookup, SelectListItem>()
.ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.LookupId.ToString()))
.ForMember(dest => dest.Text, opt => opt.MapFrom(src => src.Value));
}
}
查询看起来像:
Provinces = _db.Lookups.Project().To<SelectListItem>().ToList()
问题:
有没有一种方法可以配置 LookupProfile 以进行正确的映射并仍然在 Linq To Entities 中工作?还是有另一种方法可以使投影与 Linq to Entities 一起工作?