c# - 使用 Entity Framework Core 映射图像类型属性
问题描述
我有一个具有类型属性的类,System.Drawing.Image
因为我想在其中存储图像。尝试使用 Entity Framework Core 构建 Web API 控制器时,我收到错误消息:
我认为问题在于System.Drawing.Image
该类具有 type 的“Tag”属性object
。现在,问题是如何修复这个映射?
解决方案
选项 1:
System.Drawing.Image
您可以将数据映射到另一个类型的属性,而不是直接在 EF 映射中使用byte[]
[NotMapped]
public System.Drawing.Image Image { get; set; }
public byte[] ImageData
{
get
{
using (var ms = new MemoryStream())
{
Image.Save(ms, Image.RawFormat);
return ms.ToArray();
}
}
set
{
if (value == null)
{
Image = null;
}
else
{
using (var ms = new MemoryStream(value))
{
Image = Image.FromStream(ms);
}
}
}
}
选项 2:
您也可以只将ImageData
属性保留在模型中,并在模型之外处理加载和保存图像。
public byte[] ImageData { get; set; }
推荐阅读
- mysql - 无法在节点中建立持久的 mysql 连接
- sql - 由多个但预先确定的帐户撰写的帖子的 SQL 查询
- python - 在 Python 中使用 Beautifulsoup 进行网页抓取
- javascript - Google Sheet API,PUT:this.http.put(...).map 不是函数
- android - 如何使 ListWheelScrollView 水平
- excel - VBA - 如何更快地删除和保留一些符合标准的数据
- java - Java 8 forEach 循环是 ListIterator 之类的方法还是 while 和 do-loop 之类的循环?
- python - 无法导入 tensorflow-gpu
- reactjs - ReactJS 和 MaterialUI:表的所有列的宽度相等
- django - 如何在不使用 ModelForm 的情况下为表单重用单个模型字段验证器?