ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-11 14:05:00  阅读:280  来源: 互联网

标签:c stored-procedures entity-framework


我正在尝试使用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社区,.Net 4.6和Entity Framework 6.1.3.
有谁知道TVP是否可以传递给存储过程,或者是否有可能被支持?

解决方法:

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

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

标签:c,stored-procedures,entity-framework
来源: https://codeday.me/bug/20190711/1432998.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有