LINQ:如何从ISingleResult <t>转换为IQueryable <int> </int> </t>

时间:2013-08-17 09:03:43

标签: c# linq linq-to-sql

我已经开始将一些现有的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 ) );

使用Store Procedures时,再次通过LINQ调用,返回的格式为:

 ISingleResult<SubClassesResult> subClasses = itsRdfsContext.SubClasses( kSubClassId );

其中SubClassesResult是一个由LINQ系统自动生成的类,它只包含一个属性,一个名为“Subject”的整数。

是否有任何简单的方法可以从此ISingleResult&lt;中获取从存储过程返回的结果? SubClassesResult&gt;格式化为IQueryable&lt; int&gt;我以前的格式?

1 个答案:

答案 0 :(得分:4)

怎么样?
 subclasses.Select(a=>a.Subject).AsQueryable();

相关问题