0

我正在构建一个 ASP.NET MVC 4 应用程序,它允许用户将大量图像上传到服务器。每个图像都会关联某些实体,例如 Product 实体将与产品图像关联,Category 实体将与类别图像关联。

我正在我的模式中创建一个表来记录所有上传的文件,其中包含一个字符串“Ref”,每当用户想要对文件进行操作时,我都会解析它,比如删除文件。这样,当用户想要删除文件时,我会简单地将架构中的文件标记为删除,并且每天一次,我可以通过批量删除所有标记的文件来“清理”服务器上传的文件。

例如,一个文件image.jpg作为产品图片上传,我将在 ref 标签image productID 4中显示这是产品 ID 为 4 的产品的图片。

这是实现上传文件处理的正确方法还是有更好的方法?这是“引用”与此文件关联的其他实体的正确方法吗?

这是我的 codefirst 实体:

public class UploadedFile
{
    [Key]
    public int ID { get; set; }
    public string RelativePath { get; set; }
    public string AbsolutePath { get; set; }
    public string Ref { get; set; }
    public DateTime UploadedOn { get; set; }
    public bool IsMarkedForDeletion { get; set; }
    public bool IsImage { get; set; }
}

有没有办法在设置其他属性时声明某些公共属性自动设置?例如,如果上传的文件类型是图像,我想添加自动设置的 ImageWidth 和 ImageHeight 属性(即每当我设置 IsImage = true 时)

4

1 回答 1

0

使用 Ref 列很好,但是如果有一个附加列来指定引用的类型会更有益,在您的情况下它将是一个产品,但您可能希望使用同一个表来引用不同的对象的类型。

设置相关属性的逻辑不应该是模型的一部分,而是将 IsImage 属性设置为 true 的服务的逻辑。所以只需在那里设置其他相关属性。

于 2013-06-25T21:26:30.827 回答