Linq 查询可以从 Sql 数据库中检索 BLOB 吗?

Posted

技术标签:

【中文标题】Linq 查询可以从 Sql 数据库中检索 BLOB 吗?【英文标题】:Can a Linq query retrieve BLOBs from a Sql Database? 【发布时间】:2010-09-08 09:46:00 【问题描述】:

Linq 查询能否从 Sql 数据库中检索 BLOB? 它们是怎么出来的?

【问题讨论】:

BLOB 是 Oracle 术语,而不是 Microsoft SQL Server 术语。参考具体的列类型以获得更好的答案(例如'text'或'image')。 只有 Oracle 是吗?最好有人告诉微软! microsoft.com/technet/prodtechnol/sql/2000/reskit/part3/… 【参考方案1】:

LINQ-To-SQL 类为 SQL-Server 中的所有二进制和 varbinary 字段创建 System.Data.Linq.Binary 类型的属性。 Binary 类型有一个返回 byte[] 的 .ToArray() 方法,它的构造函数可以接受一个 byte[]。

旧版本的 SQLMetal 生成了 byte[] 类型的属性,但问题在于它们在任何连接中都失败了。我认为这是他们用 IEquatable Binary 类型替换它的主要原因。

【讨论】:

【参考方案2】:

如果我没记错的话,LINQ to SQL 将 BLOB 视为 System.Byte[] 我记得 SqlMetal 有一些问题,它为 BLOB 生成了错误的类型,但是 MSVS dmbl 设计器应该可以工作。

【讨论】:

以上是关于Linq 查询可以从 Sql 数据库中检索 BLOB 吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 LINQ 和 XElement 查询 SQL 表

使用 LINQ 从多个表中检索数据

在 C# 代码中的 DB 中的 Linq 查询中包含空单元格

拉拉维尔。从 SQL SERVER 检索图像。数据类型:图片

LINQ查询表达式 - 查询表达式基础

将查询从 linq 复制到数据表时出错