2011-07-18 62 views
1

我開始與選擇對視圖&一個SQL查詢看起來是這樣的:如何使用RIA服務將SQL查詢轉換爲LINQ?

SET @id = ... 
SET @variableDate = ... 
SELECT Id, 
     dbo.fnGreaterDateTime(ViewDate,@variableDate) AS GreaterDate, 
    FROM vwExample 
    WHERE Id = @id 

SQL函數fnGreaterDateTime作品如你所願,返回兩個值中的較大者在通過

我在使用EF & RIA服務時無法將其轉換爲LINQ查詢。在我的域名服務,我想能夠做到像下面這樣:

public IQueryable<ExampleViewResult> GetExampleViewResults(int id, DateTime variableDate) 
{ 

    var query = from r in this.ObjectContext.ExampleViewResults 
     where r.Id == id 
     select new ExampleViewResult 
      { 
      Id = r.Id, 
      ViewDate = (r.ViewDate > variableDate) ? r.ViewDate : variableDate 
      } 
    return query; 
} 

但是,當我把這個方法我收到一條「實體或複雜類型ExampleViewResult不能在LINQ來構建一個錯誤到實體查詢「。

我嘗試了this線程的一些建議,但是當我使用域服務方法返回一個DTO列表時,自動代碼生成不包括在我的域上下文中使用的方法。

任何想法?

+0

如果你VAR listResults = this.OjbectContext.ExampleViewResults.ToList()會發生什麼;然後var query = from r in listResults ... –

+0

這不能是你的實際代碼,因爲這不會被編譯(缺少;)。這讓我覺得你刪除了你認爲不相關的部分,以及那些可能成爲問題根源的部分。請發佈完整的代碼。 – cadrell0

+0

@ cadrell0 - 我確實刪除了一些在示例中只是噪音的部分。你指的是哪個問題?我正在尋找另一種編寫查詢的方法。 –

回答