Sql server 2012 返回存储过程中行内的数组
以下是我的设置的简化版本 如果我有一个跟踪孩子们玩的玩具的系统,我的数据库将有以下表格:Sql server 2012 返回存储过程中行内的数组,sql-server-2012,asp.net-core-2.0,Sql Server 2012,Asp.net Core 2.0,以下是我的设置的简化版本 如果我有一个跟踪孩子们玩的玩具的系统,我的数据库将有以下表格: CREATE TABLE Children Id INT NOT NULL PRIMARY KEY, Name VARCHAR NOT NULL CREATE TABLE Toys Id INT NOT NULL PRIMARY KEY, Name VARCHAR NOT NULL CREATE TABLE Plays_With Child_Id INT PRIMARY KEY, Toy_Id IN
CREATE TABLE Children
Id INT NOT NULL PRIMARY KEY,
Name VARCHAR NOT NULL
CREATE TABLE Toys
Id INT NOT NULL PRIMARY KEY,
Name VARCHAR NOT NULL
CREATE TABLE Plays_With
Child_Id INT PRIMARY KEY,
Toy_Id INT PRIMARY KEY,
CONSTRAINT FK_Child FOREIGN KEY Child_Id REFERENCES Children(Id),
CONSTRAINT FK_Toy FOREIGN KEY Toy_Id REFERENCES Toys(Id)
我的C#类将如下所示:
public class Child
{
public int Id {get; set;}
public string Name {get; set;}
public List<Toy> Toys {get; set;}
}
public class Toy
{
public int Id {get; set;}
public string Name {get; set;}
}
公共类子类
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共列表玩具{get;set;}
}
公营玩具
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
(请忽略上面的任何语法错误,因为这是对设置的描述,而不是实际代码)
现在回到实际问题,是否有一种方法可以检索用单个存储过程填充子对象列表(检索每个子对象及其相关玩具)所需的信息?SQL 2012不能使用JSON(需要SQL 2016),但可以使用XML。是的,您可以编写查询/过程来返回包含孩子/玩具列表的XML,并将其解析为c#对象。如果您不展示您迄今为止的工作,以获得所需的结果,我相信这里的任何人都不会走得更远。@DaveCullum看起来xml是一条出路。如果我想生成以下内容,我的查询会是什么样子:基本上,这取决于您在c代码中使用的是什么-我猜不同的ORM有不同的方式来处理这些事情,如果您想使用数据集或数据读取器,它将是不同的。。。尽管如此,我列出的所有方法都是可能的,当然还有Date Cullum所写的XML。