首页 文章

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

提问于
浏览
4

我正在尝试使用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是否可以传递给存储过程,或者是否有可能被支持?

1 回答

  • 0

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

    无论EF是否会支持它,我都可以为微软工作 . 是否可以完成,答案似乎是"yes"基于How to pass table value parameters to stored procedure from .net code,但是看起来你需要使用原始ADO.NET来做到这一点 .

相关问题