EF导航属性会自动从已查出来的对象附加
Posted cyril-hcj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF导航属性会自动从已查出来的对象附加相关的知识,希望对你有一定的参考价值。
如果新增对象导航属性对应的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导航属性会自动从已查出来的对象附加的主要内容,如果未能解决你的问题,请参考以下文章