EF 4.1 Code First - 在 Firebird 数据库中存储图像

Posted

技术标签:

【中文标题】EF 4.1 Code First - 在 Firebird 数据库中存储图像【英文标题】:EF 4.1 Code First - storing Images in Firebird database 【发布时间】: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?

问候,加布里埃尔

【问题讨论】:

【参考方案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));

以上是关于EF 4.1 Code First - 在 Firebird 数据库中存储图像的主要内容,如果未能解决你的问题,请参考以下文章

EF 4.1 Code First - 在 Firebird 数据库中存储图像

如何使用 Code-First EF 4.1 从数据库中删除多个项目

EF 4.1 Code-First 项目上的 MvcMiniProfiler 不分析 SQL

EF 4.1 Code First 添加到外键集合

EF 4.1:使用 Fluent 映射从 Code First 中查找关键属性类型

EF 4.1 Code First - 我应该使用啥模式?