繁体   English   中英

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

[英]How to pass a list of data to a stored procedure, using Entity Framework 6

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

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

警告4错误6005:函数'uspGetBusyPersonsTVP'在参数索引2处具有参数'list',其具有当前不支持目标实体框架版本的数据类型'表类型'。 该功能被排除在外。

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

此MSDN站点https://msdn.microsoft.com/en-us/data/hh859577.aspx表示自EF 5.0以来已支持表值参数,但本文仅讨论返回数据。

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

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

EF是否会支持它我无法回答,因为我不为微软工作。 无论是否可以,基于如何将表值参数从.net代码传递给存储过程 ,答案似乎是“是”,但是看起来您需要使用原始ADO.NET来执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM