C#entityframework将自引用id保存在同一个表中

C#entityframework将自引用id保存在同一个表中,c#,entity-framework-6,C#,Entity Framework 6,这似乎是个愚蠢的问题。很抱歉:) 我正在使用C#Entityframework在sqlserver表中存储一个实体。我有以下示例类: public calss Item { public int ItemId {get;set;} public int? ParentId {get;set;} public string Column1 {get;set;} public string Column2 {get;set;} } 预期数据: ItemId Par

这似乎是个愚蠢的问题。很抱歉:)

我正在使用C#Entityframework在sqlserver表中存储一个实体。我有以下示例类:

public calss Item
{
    public int ItemId {get;set;}
    public int? ParentId {get;set;}
    public string Column1 {get;set;}
    public string Column2 {get;set;}
}
预期数据:

ItemId  ParentId    Column1     Column2
100     null        paaaaaa     null
101     100         null        Childdddd
我将实体保存在内存中,最后调用context.savechanges()。在一次保存两条记录时,如何获取父记录的id


谢谢

您可以这样实现:

   public class Item
    {
        public int ItemId {get;set;}
        public int? ParentId => Parent?.ItemId;
        public string Column1 {get;set;}
        public string Column2 {get;set;}
        public Item Parent {get;set;}
    }

首先,我认为你不应该在保存的时候做,在我看来,最好在创建child的时候做

创建通过逻辑查找父对象的方法。(很难回答,不知道如果父母不止一个,你如何确定哪一个是父母)

void Save() 
{
   SetParents();
   context.savechanges();
}