#c# #asp.net #entity-framework #asp.net-core
#c# #asp.net #entity-framework #asp.net-core
Вопрос:
Я создаю ВЕБ-API для создания объектов JSON в .net core
Дело в том, что наборы данных генерируются в хранимых процедурах SQL (с использованием динамического SQL), и я не знаю тип возвращаемых объектов, поэтому я могу сопоставить его с конкретной моделью, поскольку выходные столбцы меняются в зависимости от параметров.
Кто-нибудь знает, как восстановить набор данных из BD в net core 1.0 с использованием EF или без него?
Много просматривал и могу найти только те, которые используют модели
Заранее спасибо
Комментарии:
1. Вы пробовали использовать classic ADO.NET ?
2. разве это не устарело в core? если нет каких-либо примеров, как это установить? я разработчик веб-форм, совершающий переход, его совершенно другой ^^
3. Когда вы говорите «набор данных», вы имеете в виду класс набора данных в ADO.NET или результат с сервера базы данных?
4. Результат из базы данных
5. Проверьте мой ответ, пожалуйста
Ответ №1:
Вы можете добавить следующие зависимости для своего проекта в файле project.json:
- System.Data.Обычный
- System.Data.SqlClient
Как вы можете видеть на следующем изображении:
Перестройте свой проект, и вы сможете написать что-то вроде этого:
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();
}
}
}
Пожалуйста, дайте мне знать, если это полезно.