使用LINQ to SQL的二进制列的最佳方法

时间:2010-01-24 19:49:33

标签: linq-to-sql filestream

我的SQL 2008表,我们称之为tblDocument,包含name,creator,sequenceNumber等列,后跟包含文档本身的“DocumentContent”varbinary(max)列。

我正在使用LINQ to SQL。如果我想在接口中显示tblDocument的行而不用通过线路检索每行的多兆字节二进制文件,那么最好的方法是什么?有没有办法这样做,以便在我从属性中读取之前不会访问文件流,或类似的东西?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Linq创建不包含DocumentContent列的匿名对象。像这样:

var list = from item in db.tblDocument
  select new  
  {
    item.ID,
    item.name,
    item.creator,
    item.sequenceNumber
  };

然后使用ID在需要时只检索DocumentContent:

var content = db.tblDocument
  .Where(x => x.ID == MyRowID)
  .Select(x => x.DocumentContent).Single();