环境
模型
代码片段中的模型
public class MainEntity
{
public long Id { get; set; }
public virtual Collection<ChildEntity> ChildEntities { get; set; }
}
public class ChildEntity
{
public long Id { get; set; }
public MainEntity ParentMainEntity { get; set; }
public virtual Collection<ChildEntity> ChildEntities { get; set; }
}
注意:ChildEntity只能再次将ChildEntities级别深一层作为childeren。
问题
我能够坚持这种模式。这似乎工作正常。只有一个问题。当我存储具有父 ChildEntity 的 ChildEntity 时。 MainEntity_id 字段为NULL,仅设置 ParentChildEntityId 。我要始终设置 MainEntity_Id 字段的原因是为了性能查询。
如何强制MAINENTITY_ID字段始终在更深的级别中设置值?
最佳答案
第一的:
通过将外键放在POCO之外,您会遇到麻烦。在MainEntityId
中添加ChildEntity
属性将使您能够将新ChildEntities
与MainEntity
的关系设置。
第二:
var newChild =new ChildEntity();
parentEntity.ChildEntities.Add(newChild);
parentEntity.ParentMainEntity.ChildEntities.Add(newChild);
应当根据您如何加载实体以及哪些实体将附加到或将附加到dbContext来工作。
关于c# - 一对多和递归关系-设置力值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25105247/