问题描述
我有一个向用户显示表单的应用程序。该表单由服务器获取并存储在数据库中,在该数据库中可以在应用程序的另一个页面上读取信息。表单的一部分采用图像,其中图像被转换为 Base64 字符串并发送到 Azure 进行存储,图像的 URL 作为字符串存储在数据库中。这一切正常。我的麻烦来自尝试实现用户可以选择多个图像的功能。
我尝试将 string Image {get;set;}
更改为 List<string> {get;set;}
,其中数据库将仅存储 URL 列表,我可以在应用程序中遍历它们。这显然不起作用,因为通过一些研究,我了解到数据库不能存储列表。
我现在想知道我可以在这里做什么。有没有更简单的方法来做到这一点,我想念?我做错了什么?
解决方法
我尝试将字符串 Image {get;set;} 更改为 List {get;set;} 数据库将只存储 URL 列表 我可以在应用程序中遍历它们。这显然 没有用,因为通过一些研究,我了解到数据库 无法存储列表。
您可以尝试使用以下方法:
-
在图片网址之间添加分隔符。使用
string Image {get;set;}
来存储图片 url,值是这样的:"image1url,image2url,etc"(使用,
作为分隔符)。您可以考虑使用 String.Join Method。 -
新建一个Image表来存储Image信息(包含ID、Name、Urls),然后配置Main表和Image模型的一对多关系。在 Main 模型中,使用导航属性添加图像。代码如下:
public class Main { public int Id { get; set; } public string Name { get; set; } public List<Image> Images { get; set; } } public class Image { public int Id { get; set; } public string Name { get; set; } public string Url { get; set; } }
有关实体关系的更多详细信息,请参阅:
Configuring One To Many Relationships in Entity Framework Core