我只是想知道是否有一个简单的方法来存储和检索二进制(文件)数据使用EF Code First CTP 5?我真的希望它使用FILESTREAM类型,但我真的只是在寻找一些方法来使它工作。
发布于 2011-06-05 13:45:10
我总是使用一对一的关联创建另一个类,比如ProductImage
,以便管理延迟加载并对表进行规范化:
public class ProductImage
{
public int ProductId { get; private set; }
public byte[] Image { get; set; }
}
发布于 2011-01-16 20:54:52
就像Ladislav提到的那样,将你的属性声明为byte[]。
public class Product
{
public int Id { get; private set; }
public string Name { get; set; }
public byte[] ProductImage { get; set; }
}
差不多就是这样了。如果您不映射该属性,则约定它映射到一个varbinary(max)
。如果您在数据库中已经有一个图像列,只需在ProductImage属性上添加[Column(TypeName = "image")]
,或者如果您更喜欢代码映射,请将以下内容添加到context类中的OnModelCreating覆盖:
modelBuilder.Entity<Product>().Property(p => p.ProductImage).HasColumnType("image");
我遇到的问题是,我还没有找到一种方法来使该属性变得懒惰,因为我不一定要在每次获取产品时都加载二进制数据。我不确定我没记错,但NHibernate可以开箱即用。
https://stackoverflow.com/questions/4653095
复制相似问题