LINQ与存储过程和用户​​定义的表型参数SQL(LINQ to SQL with stored p

2019-06-23 17:22发布

我使用LINQ与SQL Server 2008中存储过程只是一个问题,一切都起到了很好的SQL语句。 L2S不能生成用于与用户定义的表型作为参数存储过程的方法。 在DBML设计面板使用对象参数类型,而不是表类型的方法签名,当我试图编译我得到了错误:

Error: DBML1005: Mapping between DbType 'Structured' and
Type 'System.Object' in Parameter 'ParaName' of Function 'dbo.StoredProcName'
is not supported. 

有没有办法来解决这个这个问题的? 我不想回到传统的ADO.NET数据访问。

Answer 1:

我不认为有什么可现在 - 表值参数在SQL Server 2008中引入 - 后LINQ和LINQ2SQL都出来了。

我还没有发现任何的博客文章在LINQ2SQL在.NET 4.0中,到目前为止表值参数支持的任何提及。

更新:
这里有一个博客帖子达米安卫队对在.NET 4.0的时间框架的修正和改进对LINQ到SQL。

更新2:
不幸的是,根据达,此功能不支持在.net 3.5,将不支持在.NET 4.0中任一:-(

无法在3.5或4.0,现在做
:( [)amien



Answer 2:

我偶然发现这个职位 ,提供调用与LINQ2SQL TVP参数的存储过程的一种手段。 这是一个关于方法一轮,基本上创建您的DataContext的部分类扩展和使用的SqlCommand通过一个DataTable。 我希望它能帮助。



Answer 3:

我有完全相同的问题,并从以下链接瑞安Prechel的示例代码帮我解决这个问题。

如何通过表值参数,从.NET代码存储过程



文章来源: LINQ to SQL with stored procedures and user defined table type parameter