我正在使用 EF Code First 和 Data Scaffolding 并且有一个包含类型属性的实体
public System.Drawing.Image Image { get; set; }
在初始化 DB 上下文以创建 DB 时,我收到以下错误:System.Data.Edm.EdmEntityType: : EntityType 'Image' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet Images is based on type Image that has no keys defined.
关于如何解决这个问题的任何想法?
最佳答案
按照@Gats 的回答 - 您不能将所有类都映射到 EF。 EF 仅理解基本类型,并且每个映射类必须被识别为实体或复杂类型。所以你的 Impage
必须定义为:
public byte[] Image { get; set; }
通过将其标记为
byte[]
EF 将理解它必须作为 varbinary
存储在 SQL 服务器中。 EF 不支持自定义类型或自定义初始值设定项,因此您不能说 EF 您的 Image
应该是其他任何内容。如果您也想将
Image
作为 System.Drawing.Image 公开,您可以执行以下操作:public System.Drawing.Image GetBitmap()
{
using (var stream = new MemoryStream(Image))
{
return System.Drawing.Image.FromStream(stream);
}
}
关于entity-framework - System.Drawing.Image EntityType 'Image' 没有定义键。定义此 EntityType 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5920490/