在使用Entity Framework为主从表添加数据,当一个表添加数据成功,另一个表添加数据失败,这时候就需要用到事务回滚。
比如有以下关系的2张表。

客户端使用TransactionScope类可以实现事务回滚。
class Program
{
static void Main(string[] args)
{
try
{
using (TransactionScope ts = new TransactionScope())
{
using (CountryDetailsEntities db = new CountryDetailsEntities())
{
Country country = new Country();
country.CountryName = "USA";
db.Countries.Add(country);
db.SaveChanges();
if (country.CountryID > 0)
{
int a = 0;
int total = 10 / a;
State state = new State();
state.CountryID = country.CountryID;
state.StateName = "NewYork";
db.States.Add(state);
db.SaveChanges();
}
}
ts.Complete();
}
}
catch (Exception ex)
{
throw;
}
}
}
以上,在添加State表数据的时候,模拟了一个异常,通过断点调试执行完毕,发现数据库中没有增加任何数据。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)