【发布时间】:2014-07-05 00:51:30
【问题描述】:
我正在使用实体框架。在我的应用程序中有一种特殊情况,我必须使用存储过程。由于SP中写了很多SQL语句,我不想在我的C#代码中重写它。我只需要以数据表的形式返回结果。我已经写了一点代码,但我被困在一个点上。有人可以完成下面的代码吗?
using (dbContext.Database.Connection)
{
dbContext.Database.Connection.Open();
DbCommand cmdItems= dbContext.Database.Connection.CreateCommand();
cmdItems.CommandText = "GetAvailableItems";
cmdItems.CommandType = CommandType.StoredProcedure;
cmdItems.Parameters.Add(new SqlParameter("jobCardId", 100525));
//Need to write code below to populate a DataTable.
}
【问题讨论】:
-
我首先使用代码,但我没有返回数据集的实体。我需要将结果集作为 DataTable。这就是我必须对动态数据(传递的参数具有不同列名的数据)执行操作的地方。
-
@user1640256 我从代码中看到您正在从数据库中“获取”一些东西。我推断您正在执行 SELECT 查询。所以你很清楚你从数据库中获取了哪些列。您能否只创建一个实体并将存储过程结果映射到实体。这应该会让你的工作变得非常简单。
-
列名是为结果集动态生成的。这就是我后面代码里不用写的逻辑了。
标签: c# entity-framework ado.net-entity-data-model