如何在插入时从表中获取自动生成的ID?
我有三张桌子
项目
ProjectXMilestone
里程碑
并且在里程碑的插入上我也想在第二个表中插入一行,所以我需要MilestoneId?所以我怎么能得到它? 我正在使用Linq。
答案 0 :(得分:3)
检查它用于linq to sql
PractiseDataContext pDc = new PractiseDataContext();
// Here CustomerId is the Identity column(Primary key) in the 'CustomerDetails' table
CustomerDetail cust = new CustomerDetail();
cust.CustomerName = "LINQ to SQL";
pDc.CustomerDetails.InsertOnSubmit(cust);
pDc.SubmitChanges();
Response.Write(cust.CustomerId.ToString());
答案 1 :(得分:0)
如果您使用LinqToSql,您的DataContext是由DB构建的,并且您的数据库是通过关系设置的,您根本不需要关心它。如果Project与ProjectMilestones之间存在1:n的关系,那么您的LinqToSql类项目应该有一个ProjectMilestones集合,您只需要填充它。
您应该可以执行以下操作:
Project pr = new Project();
pr.Milestones = new List<ProjectMilestone>();
pr.Milestones.add(new ProjectMilestone());
pr.Milestones.add(new ProjectMilestone());
DataContext.InsertOnSubmit(pr);
pr.SubmitChanges();