在不使用EF的MVC中调用SaveChanges之前从新记录获取密钥

时间:2014-11-12 23:49:41

标签: asp.net-mvc asp.net-mvc-5 crud

我在没有实体框架的情况下使用MVC5,并希望在调用SaveChanges之前从新插入的记录中检索密钥。这是因为我需要密钥作为不同记录中的外键。

这里是伪代码,可以更好地解释我想要做的事情:

1) Create record for Person

2) var newPersonId = newly created personId from Person record

3) Create record for Employee, set its personId (foreign key) to be equal to newPersonId

4) Person.SaveChanges
   Emplyee.SaveChanges

因此,问题是第2步。

我读到在使用实体框架时这样做的方法是使用[ForeignKey(" xxx")]在模型中建立关系,实体框架将采用一些东西。但由于我不使用实体框架,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

如果你没有使用EF,你怎么会有SaveChanges。

好的,你可以使用TransactionScope。

using (TransactionScope transactionscope = new TransactionScope()){
     //some other code....

     Person.SaveChanges();
     Employee.PersonId = Person.Id;
     Employee.SaveChanges()

     //if any exception rised here, all the save changes will be reverted
     transactionscope.Complete();
    }

并且您需要包含System.Transactions