将映射的业务对象返回到EF实体分部类时出错
本文关键字:实体 出错 EF 映射 业务 对象 返回 | 更新日期: 2023-09-27 18:01:08
我正在尝试将业务对象映射到自动生成的Data First实体。但是,我在mapper类中遇到了一个错误,返回了一个new Lab
。
错误为"Cannot Convert expression type 'LabManager.DataAcces.Lab' to return type LabManager.BusinessObjects.BusinessObjects.Lab"
我的问题是:当我在映射器类中返回它所期望的值时,为什么会出现这个错误?
我的业务对象如下:
namespace LabManager.BusinessObjects.BusinessObjects
{
public class Lab
{
public Lab()
{
}
public int Id { get; set; }
public string Name { get; set; }
public IList<Cylinder> Cylinders { get; set; }
}
}
我将业务对象映射到的实体是:
public partial class Lab
{
public Lab()
{
this.Cylinders = new HashSet<Cylinder>();
}
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Cylinder> Cylinders { get; set; }
}
我只是使用了一个手动映射器类(没有AutoMapper(:
namespace EmitLabManager.DataAccess.ModelMapper
public class Mapper
{
internal static BusinessObjects.BusinessObjects.Lab GetLabs(Lab entity)
{
return new Lab
{
Id = entity.Id,
Name = entity.Name,
Cylinders = entity.Cylinders
};
}
}
您很可能存在名称空间冲突。您需要在GetLabs函数中完全限定构造函数:
return new BusinessObjects.BusinessObjects.Lab
{
Id = entity.Id,
Name = entity.Name,
Cylinders = entity.Cylinders
};
这就行了。