【发布时间】:2013-08-17 09:03:43
【问题描述】:
我已经开始将我现有的一些 LINQ to SQL 查询转换为使用存储过程的查询。但是,返回结果的格式不同,我想知道是否有一种聪明的方法可以从一种格式转换为另一种格式。
例如,我有一个 LINQ 查询,它返回一组 IQueryable 格式的整数:
public static Func<rdfsDataContext, IQueryable<int>>
SubClasses = CompiledQuery.Compile( ( rdfsDataContext itsRdfsContext ) =>
itsRdfsContext.rdfs_statements.Where( s => s.predicate == kSubClassId )
.Select( s => s.subject ) );
使用存储过程时,再次通过 LINQ 调用,返回格式为:
ISingleResult<SubClassesResult> subClasses = itsRdfsContext.SubClasses( kSubClassId );
其中 SubClassesResult 是一个由 LINQ 系统自动生成的类,它只包含一个属性,一个名为“Subject”的整数。
有没有什么简单的方法可以将存储过程返回的结果从这个 ISingleResult
【问题讨论】:
-
这可能会有所帮助 - 这是一篇关于 LINQ to SQL 中表值函数的文章:weblogs.asp.net/zeeshanhirani/archive/2008/05/21/…
-
@Tim,太好了,谢谢。使用表值函数可以让我获得一个 IQueryable
,然后我可以使用 Select(s => s.subject) 来获得我所追求的 IQueryable .
标签: c# linq linq-to-sql