我试图将业务对象映射到数据优先自动生成的实体。然而,Iam在我的mapper类中得到一个错误,我返回new Lab
。将映射的业务对象返回到EF实体部分类时出错
的错误是"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
};
}
}
为什么你只在方法声明中使用完整类型名称,而不是在任何地方使用? – Kniganapolke 2013-02-26 15:43:04
@Kniganapolke这是一个很好的问题。我想我应该。我以前从来没有真正需要这样的资格。我通常会尽量保持对象名称的独特性,因此不必以此方式进行限定。我很可能会重构名称和冗余名称空间(BusinessObjects.BusinessObjects)。 – 2013-02-26 15:54:56