【发布时间】:2011-12-07 14:30:42
【问题描述】:
使用 Entity Framework 4.2 Code 首先,我们想在我们的数据库中存储一些图像数据。图片很小,只要有可能就会缓存在磁盘上。
但是,我们经常需要一些与图像一起存储的元数据(例如,它的 MIME 类型),而不是实际的图像数据。
public class Item
{
public int Id { get; set; }
//...
public Image Image { get; set; }
}
public class Image
{
public int Id { get; set; }
public String MimeType { get; set; }
public byte[] Bytes { get; set; }
}
// this also loads Bytes:
var item = _db.Items.Include("Image").Find(1);
var mimeType = item.Image.MimeType;
具体来说,我们只在极少数情况下需要图像的实际Bytes,因此除非我们请求,否则不希望加载它。
当您需要实际的 Image 对象时,避免加载 Bytes 的最佳做法是什么?
【问题讨论】:
标签: entity-framework entity-framework-4 ef-code-first lazy-loading