如何在插入时从表中获取自动生成的ID?

时间:2010-05-20 07:27:22

标签: c# asp.net-mvc linq

如何在插入时从表中获取自动生成的ID?

我有三张桌子

项目

ProjectXMilestone

里程碑

并且在里程碑的插入上我也想在第二个表中插入一行,所以我需要MilestoneId?所以我怎么能得到它? 我正在使用Linq。

2 个答案:

答案 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();