实体框架深层克隆/实体复制

时间:2019-08-20 16:02:29

标签: c# entity-framework model-view-controller

我想进行深度克隆,然后像这样保存新的新实体,但是应该更改PropertyInfo上的外键PropertyId以引用新创建的Property-是否有实现此目的的简便方法?

报告的重复问题无法解决我的问题,它回答了如何深度克隆实体,但不解决如何更新关联实体上的FK。

var originalEntity = Context.Property.Include("PropertyInfo")
                        .AsNoTracking()
                        .FirstOrDefault(e => e.Id == 1);


 Context.Properties.Add(originalEntity);

1 个答案:

答案 0 :(得分:0)

删除主要ID

var originalEntity = Context.Property.Include("PropertyInfo")
                        .AsNoTracking()
                        .FirstOrDefault(e => e.Id == 1);


originalEntity.Id = 0;
//either create propertyinfo or assign propertyinfo
originalEntity.PropertyInfo = createdPropertyInfo || Context.PropertyInfo.First(x => x.Id == idOfFKPropertyInfo);

 Context.Properties.Add(originalEntity);