将 blob 提取到 linq 对象中

Fetch blob into a linq object

我通常使用 linq 语法从 table 中获取数据,但在这种情况下,当获取 blob 时,我遇到了 linq 无法处理大 blob 的问题。

因此我尝试使用这种方式获取 blob:

        var li = new List<linq_table1>();

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            using (var command = conn.CreateCommand())
            {
                command.CommandText = "SELECT blob FROM table1";
                var reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var row = new linq_table1;
                    row.blob = reader[0] as System.Data.Linq.Binary;
                }

            }
            conn.Close();
        }
    }

linq_table1 是 table1 的 dbml table,它只包含一个类型为 varbinary(blob) 的列。 reader[0] as System.Data.Linq.Binary 虽然 returns 当 table 中的行包含 blob 时为 null。

这就是您要找的东西

(byte[])reader["blob"];

进一步阅读here