如何从 ASP.NET Core 将列表存储在 SQL Server 中?

Posted

技术标签:

【中文标题】如何从 ASP.NET Core 将列表存储在 SQL Server 中?【英文标题】:How to store list in SQL Server from ASP.NET Core? 【发布时间】:2021-11-22 15:18:25 【问题描述】:

我的数据库中有这张表,我想存储传入的数据:

public string Id  get; set;  = default!;
public double? Name  get; set;  = default!;
public string? FamilyName  get; set;  = default!;
public List<Addresses> ClientAddress  get; set;  = default!;

这是我的Addresses 课程:

public string Id  get; set;  = default!;
public string Address  get; set;  = default!;

现在我想存储在数据库中 - 我应该如何处理列表?

public Task<bool> StoreModel(MainModel mainmodel) 

     var listtostore = new MainModelEnity()
                           
                               Name = mainmodel.Name,
                               FamilyName = mainmodel.FamilyName,
                               ClientAddress = //how should I store here? 
                           

【问题讨论】:

如果您能提及您尝试使用的数据库类型,那就太好了 @OneCricketeer SQLSERVER 如果你想存储列表,那你为什么要使用关系数据库呢? “正确”模式是将store(address_id=1), store(address_id=2) 的各个行存储在某个store 表中,然后address 表中有id=1, id=2 的行,然后您加入这些行以获取具有地址信息的商店 @OneCricketeer 对不起,但我没有得到你,从 UI 获取一个人的多个地址的模型,我使用关系数据库,你说我不应该使用 List,但我应该怎么做那么?我怎样才能在数据库中获取这些地址存储?考虑到我更新的问题,你能举个例子吗?我真的很感谢你的帮助 我是说你应该使用外键查找和 SQL 连接来获取完整的数据集。你的应用程序有一个 UI 组件并不重要。存储表应该只保存存储数据。每家商店都有一个地址,以及一个订购商品的客户列表(例如)。每个客户都有一个帐单/送货地址。这些应该都是不同的表(商店、客户、订单、地址,也许还有其他) 【参考方案1】:

我假设您的意思是问如何将列表存储在关系数据库中?因为如果它是一个文件存储或 NoSql 数据库,那么它是相当容易的。

但简短的回答是,你没有。这不是关系数据库的本意。看到这个Post。

话虽如此,还是有办法解决的。

    将列表存储为字符串:

     var listString = JsonConvert.Serialize(MyList);
    

    然后你就可以轻松地把那个字符串存入数据库了

    将列表保存为服务器上的文件,然后将文件的位置存储在数据库中。

【讨论】:

谢谢,但我为他们创建了一个表,你可以看到地址类是主类中的外键,所以,我还需要做 jsonconvert 吗?老实说,我不知道我的方法是正确的 如果我不想创建第二个表,我需要做 public List ClientAddress ,当我想创建一个数据库时,它会抛出一个错误,我无法根据列表实体创建表跨度> 我认为 OP 不想存储 JSON 或文字列表。 documentation of EntityFramework shows using Lists to define relationships

以上是关于如何从 ASP.NET Core 将列表存储在 SQL Server 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像从 Asp.net Core IFormFile 上传到 Azure Blob 存储?

如何在 ASP.NET Core 3.1 中逐行迭代列表

如何多次提交表单(asp.net core razor)

ASP.NET Core从存储过程中获取Json的重构方法

ASP.NET Core中如何使用缓存

如何在 asp.net core 中使用 websockets