2016-10-03 124 views
0

我建立一個WEB API生成在.net中的核心JSON對象存儲過程EF和網絡核心

的事情是在SQL存儲過程中產生的數據集(使用動態SQL),我不知道是什麼類型返回的對象,因此我可以將其映射到具體模型,因爲輸出列根據參數而變化。

有沒有人知道在網絡核心1.0中使用或不使用EF檢索BD中的數據集?

瀏覽的很多,只能找到使用模型

在此先感謝

+0

您是否嘗試過使用經典的ADO.NET? –

+0

核心不推薦使用嗎?如果它沒有任何例子如何設置它?我是一個Web表單開發人員進行轉換,其優先級不同^^ –

+0

當你說數據集時,你是指ADO.NET中的數據集類還是數據庫服務器的結果? –

回答

1

可以在project.json文件中添加以下的依賴關係爲項目ansers:

  • System.Data 。常見
  • System.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(); 
     } 
    } 
} 

請讓我知道這是非常有用的。

+0

喲這是多虧了堅實的基地兄弟 –