asp.net-mvc-3 – 在Dbcontext中的.NET MVC 3回滚
发布时间:2020-12-16 09:46:31 所属栏目:asp.Net 来源:网络整理
导读:在MVC 3中,可以在调用DbContext.SaveChanges()之后回滚数据库吗? 我的实体类: public class BipEntities : DbContext{ public DbSetPage Pages { get; set; } public DbSetImageFile ImageFiles { get; set; }} 我要做的是将ImageFile记录插入数据库,然后
在MVC 3中,可以在调用DbContext.SaveChanges()之后回滚数据库吗?
我的实体类: public class BipEntities : DbContext { public DbSet<Page> Pages { get; set; } public DbSet<ImageFile> ImageFiles { get; set; } } 我要做的是将ImageFile记录插入数据库,然后使用自动递增的id作为图像文件名,将图像文件保存到其他地方. BipEntities db = new BipEntities(); db.Database.Connection.Open(); DbTransaction tranx = db.Database.Connection.BeginTransaction(); ImageFile img = new ImageFile { CreatedAt = DateTime.Now }; db.ImageFiles.Add(img); db.SaveChanges(); string filename = "img" + img.Id.ToString() + ".png"; try { //Works on system IO to process file tranx.Commit(); } Catch ( Exception) { tranx.Rollback(); } db.Database.Connection.Close(); 但是,上面的代码给了我这个错误信息: EntityConnection can only be constructed with a closed DbConnection. 解决方法
您应该使用TransactionScope将DbContext包装在数据库事务中,或者使用在事务内运行的DbConnection创建DbContext:
using (var con = new SqlConnection(conStr)) { con.Open(); using (var tran = con.BeginTransaction()) { var img = new Image(); using (var db = new BipEntities(con)) { db.Images.AddObject(img); db.SaveChanges(); } // Write to disk here. WriteStuffToDisk(stuff,img.Id); tran.Commit(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – MVC 6 Web Api:解析201上的位置标题(已创
- asp.net-mvc-3 – MVC3 WebGrid是否支持水平滚动条?
- asp.net-mvc – T4MVC在控件库中使用扩展方法
- 如何让asp.net不自动转换URL中的转义斜杠?
- asp.net – 如何将最新的TFS变更集编号插入到aspx页面?
- 在对ASP.NET MVC Action的AJAX请求期间有网络请求超时时会发
- asp.net-mvc – 将ASP.NET MVC路由迁移到ASP.NET vNext
- ASP.net MVC v2 – 调试模型绑定问题 – BUG?
- asp.net会员 – 自动生成的密钥不支持散列或加密的密码
- ASP.NET MVC学习教程之Razor语法
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC忽略所有url结尾的“
- asp.net – 在IIS中将WebAPI添加为子/嵌套应用程
- 使用匿名函数减少重复代码
- 你如何将ASP.Net MVC 4应用程序放在源代码管理中
- asp.net-web-api – 使用OWIN SelfHost和Windows
- Asp.net MVC中使用JQuery插件ajaxFileUpload上传
- asp.net – 如何获取Page.ClientScript.Register
- asp.net-mvc-4 – 在Startup.Auth.cs之外配置的C
- asp.net-mvc – 为什么使用sendgrid发送的电子邮
- asp.net viewstate加密问题
热点阅读