码迷,mamicode.com
首页 > 其他好文 > 详细

EF导航属性会自动从已查出来的对象附加

时间:2019-11-22 10:26:31      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:存在   text   input   osi   pre   item   lin   virtual   自动   

如果新增对象导航属性对应的Id有值,其相应的导航属性会自动在内存中查找,如果存在会自动附加上去。

public virtual void UpdateMaterialPurchaseOrderItem(
            ChangeDtos<MaterialPurchaseOrderItemDetailInputDto> itemDetail, Guid billId)
        {
            Ensure.NotNull(itemDetail, nameof(itemDetail));
            var materialPurchaseOrder = GetEntityById(billId);
            _materialPurchaseOrderItemInputUnitService.SaveChangeDtos(itemDetail, materialPurchaseOrder.OrderItemDetail);
            materialPurchaseOrder.OrderItemDetail.Where(a => a.Material == null).ForEach(a =>
                {
                    a.Material = _materialRepository.First(a.MaterialId);
                });
            RepositoryContext.Commit();
        }

 SaveChangeDtos封装了新增修改删除的方法在里面。

如果非新增数据中OrderItemDetail.MaterialId与新增数据中的MaterialId相同,则EF会自动将Material赋值。

给a.Material赋值的循环,只有当OrderItemDetail集合中(非新增数据)不存在对应的MaterialId时才会进入循环

EF导航属性会自动从已查出来的对象附加

标签:存在   text   input   osi   pre   item   lin   virtual   自动   

原文地址:https://www.cnblogs.com/Cyril-hcj/p/11910002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!