首页 > 后端开发 > C++ > 如何使用实体框架从存储过程中检索数据而不获取空数据集?

如何使用实体框架从存储过程中检索数据而不获取空数据集?

Mary-Kate Olsen
发布: 2025-01-03 10:25:41
原创
235 人浏览过

How to Retrieve Data from a Stored Procedure Using Entity Framework Without Getting an Empty Dataset?

使用实体框架从存储过程中检索数据

问题:
开发人员在使用实体框架时从存储过程中检索数据时遇到困难(EF),导致空数据集 (-1),而不是预期的数据。

存储过程:

ALTER PROCEDURE dbo.SearchProducts
  @SearchTerm VARCHAR(max)
AS
BEGIN
  DECLARE @query VARCHAR(max)
  SET @query = 'SELECT * FROM dbo.Products WHERE Name LIKE ''%' + @SearchTerm + '%'''
  EXEC(@query)
END
登录后复制

C# 代码:

var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.SearchProducts(TEST_SEARCH_TERM);

MyGridView.DataSource = result;
MyGridView.DataBind();
登录后复制

解决方案:
要解决此问题,请按照以下步骤操作步骤:

  1. 将存储过程导入为函数:

    • 右键单击实体模型的工作区并选择“添加”-> “函数导入。”
    • 输入所需的存储过程名称(例如,Search_Products)并从下拉列表中选择该过程。
    • 将返回值设置为“Entities”并选择“产品”作为实体
  2. 更新背后的代码:

    • 将现有代码替换为以下:

      var db = new MyEntities();
      var TEST_SEARCH_TERM = "product";
      var result = db.Search_Products(TEST_SEARCH_TERM); // Search_Products is the name specified in the Function Import dialog
      
      MyGridView.DataSource = result;
      MyGridView.DataBind();
      登录后复制

通过将存储过程作为函数导入,实体框架可以正确检索并返回存储过程中的数据。

以上是如何使用实体框架从存储过程中检索数据而不获取空数据集?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板