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

ここで、編集用のオブジェクトを UI に渡し、データベースに保存するためにサービスに戻すことができるように、DTO クラスが必要です。したがって:

[AutoMap(typeof(Pizza))]
public class PizzaEdit
{
    public int Id { get; set; }
    public int PizzaTypeId { get; set; }
}

目標は、 と の間をできるだけ簡単にマッピングPizzaPizzaEditて、UI で編集し、データベースに保存できるようにすることです。できれば、これは「うまくいく」でしょう。

Pizzaからへのマッピングを取得して DTO オブジェクトPizzaEditに含めるにはどうすればよいですか?PizzaTypeId

pizzaObj.MapTo<PizzaEdit>()動作しますが、PizzaTypeId常に null です。

私は、必要に応じてクラス構造を変更することにオープンです。

4

1 に答える 1

3

クラスにプロパティPizzaTypeIdを追加するだけで、テーブルになります。PizzaFKPizzaType

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 に答える