我在 SQL Server 2008 中使用 LINQ to 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 数据访问。
最佳答案
我认为现在没有任何可用的东西——表值参数是在 SQL Server 2008 中引入的——在 LINQ 和 LINQ2SQL 已经出来之后。
到目前为止,我还没有在任何博客文章中发现任何关于在 .NET 4.0 中支持 LINQ2SQL 中的表值参数的内容。
更新:
这是一个 blog post by Damien Guard关于 .NET 4.0 时间范围内 Linq-to-SQL 的修复和改进。
更新 2:
不幸的是,根据 Damien 的说法,此功能在 .NET 3.5 中不受支持,在 .NET 4.0 中也将不受支持:-(
目前无法在 3.5 或 4.0 中完成
:( [) friend 们
关于c# - 带有存储过程和用户定义表类型参数的 LINQ to SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1019414/