gpt4 book ai didi

stored-procedures - Entity Framework 4 函数导入不起作用

转载 作者:行者123 更新时间:2023-12-03 23:40:49 26 4
gpt4 key购买 nike

我将 Entity Framework 4 与 POCO 代码生成器一起使用。我有一个执行 INSERT 并返回插入记录的 @@IDENTITY 的存储过程。我正在尝试将存储过程作为函数导入到我的 .edmx 文件中,但是我在使用它时遇到了问题。

在模型浏览器中,我可以看到数据库层次结构下的存储过程,然后我右键单击并选择“函数导入...”我尝试使用“无”作为返回类型以及 Int32(即使它说“......的集合”)。该函数出现在函数导入下,但即使在保存和编译之后,我也无法在我的 ObjectContext 中的任何位置找到该函数。我曾多次尝试删除它并重新导入存储过程,但均未成功。

注意:我有另一个执行直接 SELECT 的存储过程,它被正确导入并显示在 ObjectContext 代码中。

难道我做错了什么?

最佳答案

如果您的存储过程不返回结果集,因此您在 Visual Studio 的“添加函数导入”对话框中选择“返回集合”“无”,则函数导入不会作为方法添加到您生成的对象上下文中. (我还没有找到原因,但我仍在寻找。)

来自 sproc 的返回值(例如,返回 @@identity)不是“返回集合”问题的意思。这就是它不起作用的原因。问题是询问从 sproc 返回什么结果集。

我可以想到三种方法来处理您的问题:

  • 使用选择返回您的标识值(例如,选择@@identity 作为标识),然后指定 Int32 的集合以回答“返回一个集合”问题。
  • 在插入语句中使用输出子句返回标识值,并以与 1 中相同的方式获取它。
  • 使用实体 SQL 并使标识值成为输出参数。这是如何做到的:How to: Execute a Query Using a Stored Procedure with In and Out Parameters

  • 我希望这有帮助。

    关于stored-procedures - Entity Framework 4 函数导入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3825412/

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