gpt4 book ai didi

c# - 如何从 SQL 查询返回动态对象

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:35 24 4
gpt4 key购买 nike

我有一个 storeprocdure 返回集合的情况,但我不知道对象的结构,因为查询是非常动态的。

一个查询可以返回:

Id | Location | MarketSegment | ... n columns

另一个可以返回

Id | Sales Rep | Location | Region | ... n columns

正如您在下面的代码中所见,我只是简单地返回了一个“对象”。我知道这行不通,但我该如何设置它呢?

using (DbContext db = new Context())
{

var items = db.Database.SqlQuery<object>(
"SP @Param1, @Param2",
new SqlParameter("Param1", ped),
new SqlParameter("Param2", 25)
).ToList();

return Request.CreateResponse<List<object>>(HttpStatusCode.OK, items);
}

编辑:

我不知道展示 SP 是否有帮助,除非我能解释得更多。

每一列都表示为自定义字段。用户可以创建 n 个自定义字段。因此,如果您为 User1 运行 SP,并且他有 5 个自定义字段,那么每个自定义字段将在列中表示,但如果 User2 有 3 个自定义字段,则只会表示 3 列。我无法控制的是自定义字段名称和自定义字段的数量。

最佳答案

如果使用 SQL 2016 或更新版本,请将“FOR JSON AUTO”添加到您的查询中以作为 JSON 返回,例如:

var json = db.Database.SqlQuery<string>("Select x, y, z FROM tbl FOR JSON AUTO").First();

然后使用Json.Net创建动态对象使用

var myDynamic = JObject.Parse(json)

关于c# - 如何从 SQL 查询返回动态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com