LINQ 和处理回滚
我有一个图像上传处理程序(.ASHX)。我将图像元数据存储在数据库中,并根据数据库中该条目的 id 命名图像。我正在使用 LINQ 并在调用 SubmitChanges 后取回 ID。然后我使用该 id 来保存图像。如果 File.SaveAs 失败,我显然想回滚插入。我下面的代码正确吗?
using (UserDataContext userDataContext = new UserDataContext())
{
GalleryImage galleryImage = new GalleryImage();
galleryImage.metaName = "some meta stuff";
userDataContext.GalleryImages.InsertOnSubmit(galleryImage);
System.Data.Common.DbTransaction transaction = userClassContext.Transaction;
userDataContext.SubmitChanges();
try
{
string targetPath = "somepath/" + galleryImage.Id;
file.SaveAs(targetFilePath);
}
catch
{
transaction.Rollback();
}
}
谢谢
I have an image upload handler (.ASHX). I am storing image meta data in the database and am naming the image from the id of that entry into the database. I am using LINQ and getting the ID back after I call SubmitChanges. Then I use that id to save the image. I obviously want to rollback the insert if the File.SaveAs fails. Is my code below correct?
using (UserDataContext userDataContext = new UserDataContext())
{
GalleryImage galleryImage = new GalleryImage();
galleryImage.metaName = "some meta stuff";
userDataContext.GalleryImages.InsertOnSubmit(galleryImage);
System.Data.Common.DbTransaction transaction = userClassContext.Transaction;
userDataContext.SubmitChanges();
try
{
string targetPath = "somepath/" + galleryImage.Id;
file.SaveAs(targetFilePath);
}
catch
{
transaction.Rollback();
}
}
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是部分正确的。
但是,您需要在调用
SubmitChanges()
之前显式创建事务。It is partially correct.
You, however, need to explicitly create a transaction before calling
SubmitChanges()
.