假设我有以下类结构:
public class Pizza
{
public int Id { get; set; }
public virtual PizzaType PizzaType { get; set; }
}
public class PizzaType
{
public int Id { get; set; }
public string Name { get; set; }
}
现在,我需要一个DTO类,所以我可以将一个对象传递给UI进行编辑,然后传回服务以保存到数据库。因此:
[AutoMap(typeof(Pizza))]
public class PizzaEdit
{
public int Id { get; set; }
public int PizzaTypeId { get; set; }
}
目标是尽可能轻松地在Pizza
和PizzaEdit
之间进行映射,以便在UI中进行编辑并保存回数据库。优选地,这将只是工作"。
我需要做些什么才能让Pizza
到PizzaEdit
的映射工作并在DTO对象中包含PizzaTypeId
?
pizzaObj.MapTo<PizzaEdit>()
有效,但PizzaTypeId
始终为空。
我愿意根据需要更改课程结构。
答案 0 :(得分:3)
只需将属性PizzaTypeId
添加到Pizza
类,它就会变为FK
到PizzaType
表。
public class Pizza
{
public int Id { get; set; }
public virtual PizzaType PizzaType { get; set; }
[ForeignKey("PizzaType")]
public int PizzaTypeId { get; set; }
}
通过FK
或没有LazyLoading
( NotMapped ):
public class Pizza
{
public int Id { get; set; }
public virtual PizzaType PizzaType { get; set; }
[NotMapped]
public int PizzaTypeId { get { return PizzaType.Id; } }
}