C# 如何在实体框架中保存无关实体
我有3个实体,父实体包含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
列表
实体和列表
实体
到目前为止,问题很简单
只需在父实体中添加列表
,即可完全保存父-子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