我已經開始將一些現有的LINQ to SQL查詢轉換爲使用Stored Procedures的查詢。但是,返回結果的格式不同,我想知道是否有一種巧妙的方法可以將一種格式轉換爲另一種格式。LINQ:How to convert from ISingleResult <T> to IQueryable <int>
因此,舉例來說,我有一個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子目錄結果>格式轉換爲我以前使用的IQueryable < int>格式?
這可能會有所幫助 - 這是一篇關於LINQ to SQL中表值函數的文章:http://weblogs.asp.net/zeeshanhirani/archive/2008/05/21/table-valued-functions-in-linq-to -sql.aspx – Tim
@Tim,這是完美的謝謝。使用表值函數允許我得到一個IQueryable,然後我可以使用Select(s => s.subject)來獲取我之後的IQueryable 。 –