我已经开始将一些现有的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;我以前的格式?
答案 0 :(得分:4)
怎么样?
subclasses.Select(a=>a.Subject).AsQueryable();