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