LINQ 和处理回滚

发布于 2024-10-12 14:16:32 字数 708 浏览 7 评论 0原文

我有一个图像上传处理程序(.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

此刻的回忆 2024-10-19 14:16:32

这是部分正确的。

但是,您需要在调用 SubmitChanges() 之前显式创建事务。

It is partially correct.

You, however, need to explicitly create a transaction before calling SubmitChanges().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文