gpt4 book ai didi

asp.net-mvc - 从返回具有可变列的表的 Entity Framework 调用存储过程

转载 作者:行者123 更新时间:2023-12-03 03:45:39 25 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 3 和 EF 4.x

我有一个返回结果集的过程,但列不固定(它可能返回 25 列,也可能是 40 或 50 列)。

如何从 Entity Framework 调用此存储过程?

当我使用函数导入时,它要求一个实体。但我无法选择它,因为没有任何列是固定的。

最佳答案

Entity Framework 不是适合此目的的工具。它擅长静态定义的数据结构,而不擅长动态数据结构。

有更好的工具可以做到这一点。我会推荐Dapper ,创建者 Marc Gravell 。这很容易。只需获取 NuGet 包并输入类似

using Dapper;

using (var cnn = new SqlConnection(myConnectionString))
{
cnn.Open();
var p = new DynamicParameters();
p.Add("@params", "Id=21");
var results = cnn.Query(sql:"GetMyData",
param: p,
commandType: CommandType.StoredProcedure);
foreach(IDictionary<string, object> result in results)
{
// Do something here.
}
}

Query是一个 Dapper 扩展方法,resultDapperRow ,这是一个实现 IDictionary<string, object> 的私有(private)类,因此您可以将数据作为每条记录的字典进行访问。

除了易于使用之外,它的速度也快如闪电。

关于asp.net-mvc - 从返回具有可变列的表的 Entity Framework 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21777421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com