gpt4 book ai didi

c# - 如何使用 Entity Framework 6 将数据列表传递给存储过程

转载 作者:太空狗 更新时间:2023-10-29 23:50:12 25 4
gpt4 key购买 nike

我正在尝试使用 Entity Framework Database First 将数据列表从 C# 传递到 SQL Server 存储过程。在 SO 和其他地方有很多关于这个问题的文章,但是它指的是将变量数据传递给存储过程以及那些从数据库返回变量数据的文章并不明显。他们也倾向于专注于调用存储过程的代码,但我无法做到这一点。

在 SSMS 中创建并测试了用户定义的表类型和存储过程。问题发生在C#中。更新模型(.edmx 文件)时,发出此警告:

Warning 4 Error 6005: The function 'uspGetBusyPersonsTVP' has a parameter 'list' at parameter index 2 that has a data type 'table type' which is currently not supported for the target Entity Framework version. The function was excluded.

模型浏览器中的检查显示存储过程已在模型中创建,但仅使用非 TVP 参数。

此 MSDN 站点 https://msdn.microsoft.com/en-us/data/hh859577.aspx说从EF 5.0开始支持表值参数,但是文章只讲返回数据。

我刚刚完成更新,现在正在使用 Visual Studio 2015 Community、.Net 4.6 和 Entity Framework 6.1.3。有谁知道 TVP 是否可以传递给存储过程,或者它是否可能得到支持?

最佳答案

您引用的文章讨论的是表值函数(即返回表的用户定义函数),而不是将表值参数传递给存储过程。您在比较苹果和大象。

EF 是否会支持它我无法回答,因为我不在 Microsoft 工作。能不能做到,根据How to pass table value parameters to stored procedure from .net code看来答案是“能” ,但是您似乎需要使用原始 ADO.NET 来执行此操作。

关于c# - 如何使用 Entity Framework 6 将数据列表传递给存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508806/

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