我已经开始将一些现有的 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<SubClassesResult> 格式转换为我以前使用的 IQueryable<int> 格式?