Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在实体框架中保存无关实体_C#_Linq_Ef Code First_Entity Framework 6 - Fatal编程技术网

C# 如何在实体框架中保存无关实体

C# 如何在实体框架中保存无关实体,c#,linq,ef-code-first,entity-framework-6,C#,Linq,Ef Code First,Entity Framework 6,我有3个实体,父实体包含列表实体和列表实体 到目前为止,问题很简单 只需在父实体中添加列表,即可完全保存父-子1实体 但问题是Child1的每个实体都有一个child2主键的外键。如何在短时间内保存数据 我的实体是: public class Consignment { public int ConsignmentId { get; set; } public int ClientSubsidiaryId { get; set; } public ICollection

我有3个实体,父实体包含
列表
实体和
列表
实体

到目前为止,问题很简单

只需在父实体中添加
列表
,即可完全保存父-子1实体

但问题是
Child1
的每个实体都有一个child2主键的外键。如何在短时间内保存数据

我的实体是:

public class Consignment
{
    public int ConsignmentId { get; set; }
    public int ClientSubsidiaryId { get; set; }

    public ICollection<PackagingAid> PackagingAids { get; set; }
    public ICollection<ConsignmentLine> ConsignmentLines { get; set; }    

    public Consignment()
    {
        PackagingAids = new List<PackagingAid>();
        ConsignmentLines = new List<ConsignmentLine>();            
    }
}

public class ConsignmentLine
{
    public int ConsignmentLineId { get; set; }
    public int PackagingId { get; set; }
    public double Amount { get; set; }
    public double Weight { get; set; }                

    public int ConsignmentId { get; set; }
    public virtual Consignment Consignment { get; set; }

    public int? PackagingAidId { get; set; }
    public virtual PackagingAid PackagingAid { get; set; }
}

public class PackagingAid
{
    public int PackagingAidId { get; set; }

    public int PackagingId { get; set; }
    public double Quantity { get; set; }

    public int ConsignmentId { get; set; }
    public virtual Consignment Consignment { get; set; }
}
公共类寄售
{
public int委托ID{get;set;}
public int ClientSubsidiaryId{get;set;}
公共ICollection包装辅助工具{get;set;}
公共ICollection委托行{get;set;}
公共寄售()
{
PackageAIDS=新列表();
委托行=新列表();
}
}
公务舱托运专线
{
public int委托lineid{get;set;}
public int-PackagingId{get;set;}
公共双倍金额{get;set;}
公共双权重{get;set;}
public int委托ID{get;set;}
公共虚拟寄售寄售{get;set;}
public int?PackagingAidId{get;set;}
公共虚拟PackageAid PackageAid{get;set;}
}
公共类包装辅助设备
{
public int-PackagingAidId{get;set;}
public int-PackagingId{get;set;}
公共双数量{get;set;}
public int委托ID{get;set;}
公共虚拟寄售寄售{get;set;}
}
现在如果你想做这样的事情

consignments = new List<Consignment>();

for(int i = 0;i<500; i++)
{
    var consignment = new Consignment()
    {
      ConsignmentLines = new List<ConsignmentLine>(){ line1, line2,... }
      PackagingAids = new List<PackagingAid>() { aid1, aid2, aid3 }
    }
   consignments.Add(consignment);
}

db.context.Consignments.AddRange(consignments);
db.context.SaveChanges(); //  throws an exception { cannot insert PackagingAid into ConsignmentLine.PackagingAidId.....}
托运=新列表();
对于(int i=0;i