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 吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 代码中的 DB 中的 Linq 查询中包含空单元格