gpt4 book ai didi

c# - Entity Framework 6.x 在添加模型时不添加表值参数

转载 作者:IT王子 更新时间:2023-10-29 04:51:13 26 4
gpt4 key购买 nike

我试图通过模型浏览器添加存储过程,SP 有一个表值参数。 SP 添加了函数导入,但缺少表值参数。 SP 有 5 个参数,包括 tvp,但我只能看到 4 个参数,并且缺少 tvp 参数。

我确实谷歌搜索以找到原因和解决方案。每个人都建议使用实体的 ExecuteStoreProcedure 方法。例如Entity Framework Stored Procedure Table Value Parameter

但我想使用在我们使用模型浏览器添加 SP 时创建的函数导入,所有其他 SP 都可以正常工作,因为它们没有 tvp。注意:使用 EF 6.1.1 和 .net 4.5,以及 VS2013

问题:C# 和 EF 是否支持通过 TVP 导入 SP?

最佳答案

已提交有关该问题的 github 帖子,涉及 EF 核心但也适用于 EF 6:

  • Stored procedures are only supported in raw/inline SQL in Entity Framework Core.
  • Table Valued Parameters are only supported in raw/inline SQL in Entity Framework Core because we just pass any SqlParameter through
    to the underlying ADO.NET provider.
  • We initially used "Entity Framework 7" as the name for EF Core, but there is no released product called "Entity Framework 7" so I am not
    100% which product you are referring to.

Microsoft 最初的想法是让 EF 6 适应新的 EF 核心标准,因此他们决定仅在原始/内联 sql 上支持表值参数。

您可以通过任何一种方式将 SqlParameter 传递给底层的 ado.net 提供程序,因此实际上没有理由通过 Functions Import 传递参数。

是的,您的方法是使用 ExecuteStoreProcedure,因为 Microsoft 恰本地提示您这样做,或者通过使用您自己的实现扩展分部类来自己添加代码。

关于c# - Entity Framework 6.x 在添加模型时不添加表值参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35049695/

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