【问题标题】:EF 4.1 Code First - storing Images in Firebird databaseEF 4.1 Code First - 在 Firebird 数据库中存储图像
【发布时间】:2011-05-21 14:47:15
【问题描述】:

我正在尝试使用 blob 将图像存储在 Firebird 数据库中。在我的课堂上,我将它们声明为 byte[]:

[Column("SMALLIMAGE")]
public Byte[] SmallImage { get; set; }
[Column("MEDIUMIMAGE")]
public Byte[] MediumImage { get; set; }
[Column("BIGIMAGE")]
public Byte[] BigImage { get; set; }

我在 SaveChanges() 中收到 DbUpdateException。如何在 Firebird 中将 Byte[] 映射到 BLOB?

问候,加布里埃尔

【问题讨论】:

    标签: mapping entity-framework-4.1 firebird code-first


    【解决方案1】:

    我对 Firebird 一无所知,但如果您的数据库特定类型称为 BLOB,您可以尝试:

    [Column("SMALLIMAGE", TypeName="BLOB")]
    public Byte[] SmallImage { get; set; }
    

    或者在流畅的映射中:

    modelBuilder.Entity<YourEntityType>()
                .Property(e => e.SmallImage)
                .HasColumnName("SMALLIMAGE")
                .HasColumnType("BLOB");
    

    【讨论】:

    • 错误消息没有改变 - “实现项目时出错”(翻译自德语)。和堆栈跟踪: bei System.Data.Entity.Internal.InternalContext.SaveChanges() bei System.Data.Entity.Internal.LazyInternalContext.SaveChanges() bei System.Data.Entity.DbContext.SaveChanges()
    • firebird 存储二进制列的正常方式是什么?这似乎不支持 BLOB。
    • 创建表簿(ID 整数 NOT NULL,TITLE Varchar(1024),BINDING Varchar(40),ISBN Varchar(20),ASIN Varchar(20),SMALLIMAGE Blob sub_type 0,MEDIUMIMAGE Blob sub_type 0 , BIGIMAGE Blob sub_type 0, NUMBEROFPAGES 整数 NOT NULL, PUBLICATIONDATE Varchar(25), DETAILPAGEURL Varchar(1024), LANGUAGEORIGINAL Varchar(40), LANGUAGEPUBLISHED Varchar(40), SUBJECT Varchar(25), CLASS Integer NOT NULL, PUBLISHER_ID Integer, PRIMARY密钥(ID));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多