2010-09-08 64 views
8

我正在使用MVC webform将记录插入到具有多个子记录的数据库中。在我的代码隐藏中,我首先使用dataRepository.Add(xx)创建一个新的主记录。现在我需要添加5个需要新创建记录ID的子记录。我如何检索?ASP.NET MVC获取最后添加的记录的标识

+2

如何您的数据存储库来实现? Linq的实体? Linq to SQL?输入数据集?需要代码。 – villecoder 2010-09-08 12:47:01

+1

不是MVC Webform是一个矛盾吗? – Martin 2010-09-08 12:50:21

+2

只是一句话:不要在ASP.NET MVC中使用代码隐藏文件! – davehauser 2010-09-08 13:00:27

回答

23

假设xx是你的模型,它的主键是标识,你可以得到的Id你插入的数据是这样的:

// at this point xx.Id == null 
db.XX.AddObject(xx); 
db.SaveChanges(); 
// now: xx.Id > 0 
int id = xx.Id; 
1

您应该将所有5条记录加上主记录一直提交到您的数据层,然后在您的业务层中执行任何验证。然后,根据DL的实施情况,保存主记录,返回ID,在子记录上设置父ID并保存。在一次交易中做到这一切,你应该没问题。

请详细介绍您的数据访问层。

如果使用MS SQL Server,您可以在存储过程中使用Scope_Identity()来获取插入到标识列中的最后一个标识值。看到这个MSDN article

如果使用NHibernate的你在同一个会话中添加他们和NHibernate负责生成负责将用正确的ID记录的SQL。

2

如果您正在使用ORM(例如实体框架),您应该能够创建记录和关联记录,通过将关联记录添加到主对象的集合中或者以某种方式设置它们,然后调用save方法在上下文中。这将为您做所有与ID等链接。

你是如何进行数据访问的?

相关问题