2016-10-03 3 views
0

Я строю WEB API для создания объектов JSON в ядре .netхранимых процедур EF и NET CORE

Дело в том, что наборы данных генерируются в SQL хранимых процедур (с использованием динамического SQL) и я не знаю, тип возвращаемых объектов, поэтому я могу сопоставить его с конкретной моделью, поскольку выходные столбцы меняются в зависимости от параметров.

Означает ли кто-нибудь ho, чтобы извлечь набор данных из BD в чистом ядре 1.0 с использованием или без использования EF?

просмотрел много и может найти только ansers, которые используют модели

Заранее спасибо

+0

Вы пробовали использовать классический ADO.NET? –

+0

разве это не рекомендуется в ядре? если его нет примеров, как его установить? Я разработчик веб-форм, делающий переход, его prety diferent ^^ –

+0

Когда вы говорите, что набор данных yoou означает класс набора данных в ADO.NET или результат с сервера базы данных? –

ответ

1

Вы можете добавить следующие зависимости для вашего проекта в project.json файле:

  • System.Data .Common
  • System.Data.SqlClient

Как вы можете увидеть на следующем изображении:

enter image description here

Rebuild ваш проект, и вы можете написать что-то вроде этого:

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(); 
     } 
    } 
} 

Пожалуйста, дайте мне знать, если это полезно.

+0

yup thats it спасибо за прочную базу bro –

Смежные вопросы