如何从自动编号主键停止 Entity Framework
How To Stop Entity Framework From Auto Number Primary Key
我正在从基于主键值的现有数据中播种新的 EF 6 数据库。也就是说,我有两个表:
Sessions: { Id int, Title String, Speakers: [x,y,z ints] }
Speakers: { Id int, Name String }
我首先为所有演讲者播种,不幸的是 EF 忽略了我为演讲者输入的 ID,因此在创建会话时,会话中的 SpeakerId 都是错误的。
如何从我的扬声器数据中获取主键以作为该数据中的原始主键值插入而不是自动编号。
您需要 3 个表,而不是 2 个。
Sessions: {int Id, string Title}
Speakers: {int Id, string Name}
and
SessionsSpeakers: { int sessionId, int speakerId }
之后,当您设置数据时 类,您可以这样设置:
var speaker1=new Speaker {Name="Me"};
var speaker2=new Speaker {Name="You"};
var session1=new Session {Title="This"};
var session2=new Session {Title="That"};
db.Speakers.Add(speaker1);
db.Speakers.Add(speaker2);
db.Sessions.Add(session1);
db.Sessions.Add(session2);
db.session1.Speakers.Add(speaker1);
db.session1.Speakers.Add(speaker2);
db.session2.Speakers.Add(speaker1);
db.SaveChanges();
我正在从基于主键值的现有数据中播种新的 EF 6 数据库。也就是说,我有两个表:
Sessions: { Id int, Title String, Speakers: [x,y,z ints] }
Speakers: { Id int, Name String }
我首先为所有演讲者播种,不幸的是 EF 忽略了我为演讲者输入的 ID,因此在创建会话时,会话中的 SpeakerId 都是错误的。
如何从我的扬声器数据中获取主键以作为该数据中的原始主键值插入而不是自动编号。
您需要 3 个表,而不是 2 个。
Sessions: {int Id, string Title}
Speakers: {int Id, string Name}
and
SessionsSpeakers: { int sessionId, int speakerId }
之后,当您设置数据时 类,您可以这样设置:
var speaker1=new Speaker {Name="Me"};
var speaker2=new Speaker {Name="You"};
var session1=new Session {Title="This"};
var session2=new Session {Title="That"};
db.Speakers.Add(speaker1);
db.Speakers.Add(speaker2);
db.Sessions.Add(session1);
db.Sessions.Add(session2);
db.session1.Speakers.Add(speaker1);
db.session1.Speakers.Add(speaker2);
db.session2.Speakers.Add(speaker1);
db.SaveChanges();