gpt4 book ai didi

entity-framework - Automapper 延迟加载。 Entity Framework

转载 作者:行者123 更新时间:2023-12-04 08:31:19 25 4
gpt4 key购买 nike

我有一个实体和一个 ViewModel

public class Order
{
[Key]
public int Id { get; set; }

[Required]
public string Name { get; set; }

[Required]
[ForeignKey("DeliveryMethod")]
public int DeliveryMethodId { get; set; }
public virtual RouteDeliveryMethod DeliveryMethod { get; set; }
}


public class OrderViewModel
{
public string Name { get; set; }
public int? DeliveryMethodId { get; set; }
}

我的 Controller 接收 View 模型并使用 automapper 将其映射回实体
[HttpPost]
public ActionResult GetQuote(OrderViewModel ordervm)
{
Order order = Mapper.Map<Order>(ordervm);
// Do something with the order...

return View();
}

这一切都很好,但是在完成映射回 Order 对象后,它不会加载 DeliveryMethod,DeliveryMethodId 具有有效值,但 DeliveryMethod 始终为 null。

由于延迟加载,DeliveryMethod 不应该加载吗?

最佳答案

Automapper 只查看映射的属性。如果您尚未映射目标属性 DeliveryMethod到任何源属性,则在映射期间不会被命中。如果未执行属性 getter,则实体不会延迟加载。

但即使这个属性被命中,它也不会被延迟加载。因为 Automapper将创建 Order 的新实例映射期间的类。但是对于延迟加载,您需要 order proxy class 的实例其中有您的 DbContext里面。当您尝试读取它们的值时,此代理会加载相关实体。带素色Order类实例延迟加载无法工作。

关于entity-framework - Automapper 延迟加载。 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22536382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com