首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Entity Framework Code First CTP 5存储图像?

如何使用Entity Framework Code First CTP 5存储图像?
EN

Stack Overflow用户
提问于 2011-01-11 08:39:00
回答 2查看 80.7K关注 0票数 85

我只是想知道是否有一个简单的方法来存储和检索二进制(文件)数据使用EF Code First CTP 5?我真的希望它使用FILESTREAM类型,但我真的只是在寻找一些方法来使它工作。

EN

回答 2

Stack Overflow用户

发布于 2011-06-05 13:45:10

我总是使用一对一的关联创建另一个类,比如ProductImage,以便管理延迟加载并对表进行规范化:

代码语言:javascript
复制
public class ProductImage
{
    public int ProductId { get; private set; }
    public byte[] Image { get; set; }
}
票数 115
EN

Stack Overflow用户

发布于 2011-01-16 20:54:52

就像Ladislav提到的那样,将你的属性声明为byte[]。

代码语言:javascript
复制
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覆盖:

代码语言:javascript
复制
modelBuilder.Entity<Product>().Property(p => p.ProductImage).HasColumnType("image");

我遇到的问题是,我还没有找到一种方法来使该属性变得懒惰,因为我不一定要在每次获取产品时都加载二进制数据。我不确定我没记错,但NHibernate可以开箱即用。

票数 67
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4653095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档