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

时间:2017-01-17 15:46:23

标签: 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  ParentId    Column1     Column2
100     null        paaaaaa     null
101     100         null        Childdddd

我将实体保存在内存中,最后调用context.savechanges()。当我在一次保存中保存两个记录时,如何获取父级的ID?

感谢

2 个答案:

答案 0 :(得分:0)

你可以这样做:

   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;}
    }

答案 1 :(得分:0)

首先,我认为你不应该保存,在我看来,当你创造孩子时,最好这样做。

创建按逻辑查找父项的方法。 (很难回答不知道如果有多于一个,你如何确定哪一个是父母)

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