文件保存在asp.net中并将信息保存在DB中

时间:2010-09-08 05:06:50

标签: asp.net .net

我正在创建用户,使用asp.net + C#。表单(UI)收集信息并将数据发送到Business层。现在,在从UI收集信息的同时,我还希望在应用程序域的文件系统中保存用户的图像。

业务层中有一个函数SaveImage,它返回保存的路径。 场景: 1)首先保存图像,然后将其他信息保存在DB中。 2)首先在DB中保存信息,然后上传图像。

哪种情况最好。如果方案1更好,那么如果保存图像崩溃了怎么办?

4 个答案:

答案 0 :(得分:1)

选项2更好,因为现在您确定该文件已保存在root上。

如果先保存记录然后保存图像文件并且失败,则需要从数据库中回滚或删除记录。

我希望它可以帮到你

答案 1 :(得分:0)

我的建议最好将两者都放在Transaction scope中。如果一个失败则应该回滚

答案 2 :(得分:0)

第一个更合适,然后第二个,因为如果你没有存储文件,那么你必须去另一个数据库访问或者想一想你是否同时与DB的松散连接然后你有一个垃圾信息在没有文件的DB中。这可能会在未来造成进一步的错误

使用

更好
  1. 先保存图片,然后将其他信息保存在Transaction
  2. 的数据库中

答案 3 :(得分:0)

我同意@anishmarokey的看法,你似乎应该在某种形式的交易中拥有这个,无论保存的顺序如何,只有一切顺利才能保留数据......否则会有适当的反馈

话虽如此,用户或管理员(或任何人)是否有能力更改用户的图像?因为创建用户的屏幕可能更有意义,创建用户并保存它们,然后使用另一个允许编辑用户图像的屏幕或功能。当用户想要更改图像时,可以重复使用该功能。

因此,您的应用程序可能具有“默认”图片(经典矢量头部轮廓),然后一旦用户上传新图像或更改图像,则使用它而不是默认图像。