我在没有实体框架的情况下使用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")]在模型中建立关系,实体框架将采用一些东西。但由于我不使用实体框架,我该怎么办呢?
答案 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