0

假设我有以下类结构:

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; }
}

目标是尽可能轻松地在两者之间进行映射,以便可以在 UI 中对其进行编辑并保存回数据库PizzaPizzaEdit最好,这将“正常工作”。

我需要做什么才能使映射从PizzatoPizzaEdit工作并包含PizzaTypeId在 DTO 对象中?

pizzaObj.MapTo<PizzaEdit>()有效,但PizzaTypeId始终为空。

我愿意根据需要更改班级结构。

4

1 回答 1

3

只需将属性添加PizzaTypeIdPizza类,它将变为FKPizzaType

public class Pizza
{
    public int Id { get; set; }
    public virtual PizzaType PizzaType { get; set; }
    [ForeignKey("PizzaType")]
    public int PizzaTypeId { get; set; }
}

或没有FKNotMapped)通过LazyLoading

public class Pizza
{
    public int Id { get; set; }
    public virtual PizzaType PizzaType { get; set; }
    [NotMapped]
    public int PizzaTypeId { get { return PizzaType.Id; } }
}
于 2016-12-22T07:17:32.247 回答