2016-10-03 121 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

哟这是多亏了坚实的基地兄弟 –