使用深层嵌套实体更新实体树

时间:2019-12-09 07:27:56

标签: c# entity-framework entity-framework-core

我的应用处理从外部系统收到的保存订单。该订单包含子项,例如订单项,地址,履行,退款>退款项等。

目前,我使用外观难看的代码来检测每个实体通过其外部ID发生的变化。有人可以推荐我更好的方法吗? :)

以下是Container( margin: const EdgeInsets.all(15.0), padding: const EdgeInsets.all(3.0), decoration: BoxDecoration( border: Border(left: BorderSide( // <--- left side color: Colors.black, width: 3.0, ), ), child: Icon(Icons.perm_identity), ), ),

的简化实体模型
Order

我的示例代码:

public class Order 
{
    public long Id { get; set; }
    public string ExternalOrderId { get; set; }
    public List<LineItem> LineItems { get; set; }
    public List<Fulfillment> Fulfillments { get; set; }
    public ShippingAddress ShippingAddress { get; set; }
    public List<Refund> Refunds { get; set; }
    public string FinancialStatus { get; set; }
    public string FulfillmentStatus { get; set; }
}

public class LineItem 
{
    public long Id { get; set; }
    public string ExternalLineItemId { get; set; }
    public string SKU { get; set; }
    public int Quantity { get; set; }
    public long OrderId { get; set; }
}

public class Fulfillment 
{
    public long Id { get; set; }
    public string ExternalFulfillmentId { get; set; }
    public string Status { get; set; }
    public string TrackingUrl { get; set; }
    public long OrderId { get; set; }
}

public class ShippingAddress 
{
    public long Id { get; set; }
    public string ExternalShippingAddressrId { get; set; }
    public string Addres { get; set; }
    public long OrderId { get; set; }
}

public class Refund 
{
    public long Id { get; set; }
    public string ExternalRefundId { get; set; }
    public List<RefundedItem> LineItems { get; set; }
    public string CancelledReason { get; set; }
    public long OrderId { get; set; }
}

public class RefundedItem 
{
    public long Id { get; set; }
    public string ExternalRefundedItemId { get; set; }
    public string SKU { get; set; }
    public int Quantity { get; set; }
}

我也有类似的代码来更新其他实体,我并不为此感到骄傲!

0 个答案:

没有答案