Kir*_*eet 18 c# stored-procedures entity-framework
我试图通过模型浏览器添加存储过程,SP有一个表值参数.SP添加了函数导入,但它缺少表值参数.SP有5个参数,包括tvp,但我只能看到4参数和tvp参数丢失.
我用Google搜索找到原因和解决方案.每个人都建议使用权限的ExecuteStoreProcedure方法.例如,实体框架存储过程表值参数
但我想使用在我们使用模型浏览器添加SP时创建的函数import,所有其他SP运行良好,因为它们没有tvp.注意:使用EF 6.1.1和.net 4.5以及VS2013
Quetion:C#和EF是否支持通过TVP导入SP?
已提交关于该问题的 github 帖子,涉及 EF core 但也适用于 EF 6:
- 仅 Entity Framework Core 中的原始/内联 SQL 支持存储过程。
- 表值参数仅在 Entity Framework Core 中的原始/内联 SQL 中受支持,因为我们只是将任何 SqlParameter 传递
给底层 ADO.NET 提供程序。- 我们最初使用“Entity Framework 7”作为 EF Core 的名称,但没有发布名为“Entity Framework 7”的产品,所以我不能
100% 知道您指的是哪个产品。
Microsoft 最初的想法是让 EF 6 适应新的 EF 核心标准,因此他们决定仅支持原始/内联 sql 上的表值参数。
无论哪种方式,您都可以将 传递SqlParameter给底层的 ado.net 提供程序,因此实际上没有理由通过 传递参数Functions Import。
所以,是的,您可以采用的方法是使用ExecuteStoreProcedureMicrosoft 适当地提示这样做,或者只是通过使用您自己的实现来扩展分部类来自行添加代码。
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |