gpt4 book ai didi

c# - 存储过程 EF 和 NET CORE

转载 作者:行者123 更新时间:2023-11-30 14:48:57 25 4
gpt4 key购买 nike

我正在构建一个 WEB API 以在 .net core 中生成 JSON 对象

问题是数据集是在 SQL 存储过程(使用动态 SQL)中生成的,我不知道返回的对象类型,因此我可以将其映射到具体模型,因为输出列会根据参数而变化.

有谁知道如何使用或不使用 EF 从 net core 1.0 中的 BD 检索数据集?

浏览了很多,只能找到使用模型的ansers

提前致谢

最佳答案

您可以在 project.json 文件中为您的项目添加以下依赖项:

  • System.Data.Common
  • 系统.Data.SqlClient

如下图所示:

enter image description here

重建您的项目,您可以编写如下代码:

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Dynamic;

namespace ConsoleApp1
{
public class Program
{
public static IEnumerable<dynamic> GetData(String cmdText)
{
using (var connection = new SqlConnection("server=(local);database=Northwind;integrated security=yes;"))
{
connection.Open();

using (var command = new SqlCommand(cmdText, connection))
{
using (var dataReader = command.ExecuteReader())
{
var fields = new List<String>();

for (var i = 0; i < dataReader.FieldCount; i++)
{
fields.Add(dataReader.GetName(i));
}

while (dataReader.Read())
{
var item = new ExpandoObject() as IDictionary<String, Object>;

for (var i = 0; i < fields.Count; i++)
{
item.Add(fields[i], dataReader[fields[i]]);
}

yield return item;
}
}
}
}
}

public static void Main(String[] args)
{
foreach (dynamic row in GetData("select * from Shippers"))
{
Console.WriteLine("Company name: {0}", row.CompanyName);
Console.WriteLine();
}

Console.ReadKey();
}
}
}

如果有用,请告诉我。

关于c# - 存储过程 EF 和 NET CORE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39839231/

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