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

5
我正在尝试使用Entity Framework Database First将数据列表从C#传递到SQL Server存储过程。在SO和其他地方有许多关于问题的文章,但是不清楚哪些是指向存储过程传递变量数据,哪些是从数据库返回变量数据。它们也倾向于专注于调用存储过程的代码,但我无法做到这一点。在SSMS中创建并测试了用户定义的表类型和存储过程。问题发生在C#中。更新模型(.edmx文件)时,会发出此警告:“Warning 4 Error 6005:函数'uspGetBusyPersonsTVP'具有参数'list',该参数位于参数索引2处,具有数据类型'表类型',该数据类型目前不支持目标Entity Framework版本。该函数已被排除。”在Model Browser中进行检查,显示存储过程已在模型中创建,但仅具有非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传递给存储过程,或者它是否有可能被支持?


此内容重复:https://dev59.com/um035IYBdhLWcg3wJcjT - mcfea
1个回答

0

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

至于EF是否会支持它,我无法回答,因为我不在微软工作。根据如何从.net代码将表值参数传递给存储过程,答案似乎是“是”,但似乎需要使用原始的ADO.NET来实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接