原因:
数据库中的两个表是主从表关系,但是没有建外键,而表的id用的是数据库的自增整数,导致在使用EF导入主从表数据时,需要先保存主表数据,取到
主表的自增id后才能插入从表数据,这样循环之下,数据插入速度非常慢。
经过查询得知:
即使在数据库中没有建立外键关系,也可以在EF中通过关系建议主从表关系,从而达到批量导入主从表数据的目的。
具体实现:
首先model中需要添加主从表的关系属性
主表
[Table("DataHubEmployee")] public partial class DataHubEmployee : SecuredEntity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int pkDataHubEmployee { get; set; } public int fkDataHubBatch { get; set; } public int? OriginalBatchId { get; set; } public int EmployeeId { get; set; } public string ClientCode { get; set; } public virtual ICollection<DataHubDependant> DataHubDependants { get; set; } }