【问题标题】:How to retrieve a Json object from SQL procedure in ASP.NET using C#?如何使用 C# 从 ASP.NET 中的 SQL 过程中检索 Json 对象?
【发布时间】:2021-04-10 02:56:06
【问题描述】:

我有这样的程序

SELECT CQ.EnglishName, CQ.ArabicName, QA.ArabicName, QA.EnglishName, QA.ConditionQuestionId 
FROM ConditionQuestions AS CQ 
LEFT JOIN QuestionAnswers as QA ON CQ.Id = QA.ConditionQuestionId 
FOR JSON AUTO

我想在 c# 中检索它。我尝试了很多其他答案,但没有任何效果。 我正在使用类似的东西,但它不起作用并且只返回应该返回的一部分,尽管该过程完全正常。

var returnedObj = Salamtkdb.Database.SqlQuery<string>("sp_MostafaTesting");

提前致谢。

【问题讨论】:

标签: c# sql asp.net-mvc stored-procedures


【解决方案1】:

我建议使用 Newtonsoft.Json NuGet 包,因为它使处理 JSON 变得简单,而且我相信 SQl 服务器使用相同的包。您可以执行以下操作:

从您的 sp. 中删除 FOR JSON AUTO。

创建新类:

public class SpResult
{
 public string CqEnglishName {get;set;} 
 public ... CqArabicName ...
 ... QaArabicName ....
 ... QaEnglishName ...
 .... QaConditionQuestionId...
}

将此类添加到您的 dbcontext:

public virtual DbSet<SpResult> SpResults { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SpResult>().HasNoKey();
}

并得到结果:

var result = Salamtkdb.SpResult.FromSqlRaw("Execute sp_MostafaTesting").ToArray();
return JsonConvert.SerializeObject(result);

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 2017-02-25
    • 2017-07-27
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    相关资源
    最近更新 更多