我想为我的数据库中的图像创建一个表,该表可以被几个不同的模型使用。我正在使用实体框架并已将我的图像类定义如下:
public class Images
{
public int ID { get; set; }
public String Name {get; set;}
public byte[] ImageData { get; set; }
public string Type { get; set; }
}
然后,我想从需要保存图像的任何其他模型链接到此。例如
public class Project
{
public int ID { get; set; }
public String Name { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public virtual ICollection<tImages> Images { get; set; }
}
并且
public class User
{
public int ID { get; set; }
public String UserName { get; set; }
public virtual ICollection<tImages> Images { get; set; }
}
问题是实体框架正在将项目和用户的外键添加到图像表中。我猜我有点预料到这一点。
我想要的是定义一个可用于索引到我的图像表的图像键。我只是不确定如何定义类来获得这种影响。例如,我如何定义我的实体类来实现以下结果:
项目表
//ID Name StartDate EndDate Image
//1 Project1 05/02/2013 06/04/2013 PROJ01IMG
用户表
//ID UserName Image
//1 Bob USER01IMG
图像表
//ID Name Imagekey ImageData Type
//1 img1 PROJ01IMG 0xFFF00F1 .. etc JPEG
//2 teamphoto PROJ01IMG 0xFEB0011 ..etc JPEG
//3 outline PROJ01IMG 0xFFF0AA3 ..etc PNG
//4 bob USER01IMG 0xFFF01233 ..etc JPEG
当然,拥有外键可能是正确的方法,我不应该担心吗?只是我有很多模型,而且它们都需要存储图像,所以我宁愿将它们放在一个表中,而不是多个图像表中,因为我认为这将使所有图像的搜索/画廊等更容易。
我觉得这是一个完整的菜鸟问题,我遗漏了一些明显的东西,如果是的话,我深表歉意。