c# - EF4 将 varbinary(max) 映射到二进制 - 代码优先错误

标签 c# sql-server entity-framework entity-framework-4

我有一个名为 Attachment 的 POCO 类,它映射到 SqlServer 中的一个表,其中有一个 VarBinary(max) 字段。该字段包含文件。

POCO类看起来像这样

public class Attachment
{
    public string AttachmentId { get; set; }
    public string AttachmentTypeId { get; set; }
    public string Title { get; set; }
    public string Text { get; set; }
    public Binary Data { get; set; }
}

映射看起来像这样

modelBuilder.Entity<Attachment>().Property(a => a.Data).HasColumnName("col_data");

但是映射会抛出错误

The type 'System.Date.Linq.Binary' must be a non-nullable value type in order to use it as a parameter 'T'

如果我使用字节数组,映射工作正常,但这似乎在通过的过程中破坏了数据。

数据库中的文件有一个初始二进制字符串,如:-

0x504B0304140008000800027923400000000000000000000000001F000000

我认为这是一个 JPG 文件。 任何帮助将文件从数据库中取出的任何帮助将不胜感激。

最佳答案

Binary 数据类型仅适用于 Linq-to-Sql。 EF 无法使用它。 EF 的正确数据类型是字节数组 (byte[])。

关于c# - EF4 将 varbinary(max) 映射到二进制 - 代码优先错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757460/

相关文章:

c# - EF Core 2.1 中的动态数据播种迁移生成取决于在 OnModelCreating() 中使用的 DbContext bool-flag

c# - ASP.NET c# 修复函数库中自定义 ConfirmMessagebox 的 OK 事件

sql-server - Access 数据项目错误

sql-server - SQL 服务器 : Check if current day is Sunday

c# - 实体类型 'Uri' 需要定义主键

c# - 如何在 C# 中找到泛型类的属性?

c# - .NET 3.5 没有 enum.tryparse,那么如何安全地将字符串解析为枚举?

sql-server - Grails SQLServerException Microsoft数据库 'limit'附近的语法不正确

c# - 当应用程序关闭时,数据库连接会立即关闭吗?

entity-framework - 自定义 ASP.NET Identity (OWIN) 使用 Entity Framework 的详细信息