我有一个存储过程,它至少返回4列,然后返回n列(它是Pivot的结果)。
我不能创建一个快速类型来声明要与Linqtosql一起使用的结果集形状,因为我实际上并不知道该形状是什么。
由于Linqtosql是我的DAL,如果可能的话,我想坚持使用它--我不想回到无类型的DataSets,对吧?
如何让LinqToSql返回具有可变数量的属性/列的存储过程结果?
谢谢。
发布于 2011-05-26 03:15:31
LINQ- to -SQL需要将数据库对象映射到具体类型。所以,简而言之,你不能这样做。
有一些变通方法。我希望最好的结果是将n列映射到每个数据对象中的一个集合。
如果您可以将数据库模式更改为使用父子视图模式,而不是单个动态存储过程,则LINQ- to -SQL将能够映射这一点。例如,您的前4列位于“父”视图中,而现有proc中的每个后续列都将成为需要引用父视图的“子”视图中的一行。
另一种替代方法--更简单但更脏--是以CSV格式(或其他分隔符)返回包含当前n列的单个列。然后将该单个值解析为一个集合。丑陋但简单。
https://stackoverflow.com/questions/6133255
复制相似问题