2010-07-19 139 views
1

我正在努力解決(通常很容易處理)問題。無法將查詢中的匿名返回類型轉換爲實體類型

我有一個包含「測量」表的數據庫。每個度量都有一個時間戳(日期時間),一個值(十進制),一個度量類型(查找表的外鍵),屬於「容量項目」(主表)。

我在實體框架中導入了SQL數據庫並創建了一個模型。現在我想查詢基線。基線是容量項目的當前狀態,並且由每種類型的特定容量項目的最新測量結果表示。

那麼查詢需要返回的是:一定CapacityItem,給我每個測量類型的最新的測量。在SQL查詢中,我會對測量類型執行「group by」,並在時間戳上執行MAX()。 但是在Linq-2-Entities中,我似乎在泥裏sw sw。我需要一個返回IQueryable<Measurement>的函數,其中包含所有基線測量值,但是我的查詢都返回某種匿名類型,這是不可能的。

我希望我明確自己。當我重新閱讀這篇文章時,我可以想象它沒有什麼意義。但是,我一直在尋找這個時間太長了,我的心開始做有趣的事情:-)這裏

任何人都可以讓我在正確的方向?如有需要,請要求澄清。

非常感謝。

〜羅布

+0

如果您向我們展示您已有的一些代碼,可能會更容易。這聽起來像你可能需要在LINQ和實體框架上閱讀一些內容。以下鏈接對我來說是無價的,並且充滿了如何在LINQ查詢中完成某些事情的示例。 http://msdn.microsoft.com/en-us/library/bb394939.aspx – Jagd 2010-07-19 14:41:31

+0

@jagd,你是對的,我是一個LINQ和EF新手,我低估了學習曲線。感謝您的鏈接。它已經在我的書籤中了,但是;-) – 2010-07-19 14:47:20

回答

2

喜歡的東西:

var q = from m in Context.Measurements 
     group m by m.MeasurementType.Id into group 
     from bl in group 
     where bl.TimeStamp == group.Max(g => g.TimeStamp) 
     select bl; 

這是把我的頭頂部,猜測你的數據庫。你可能需要調整它。

+0

你幾乎是現貨!分組中存在一個錯誤(你不能命名一個組的組),我必須添加一個Where子句來篩選出所需的容量項,但總體思路正是我所需要的。它花了你5分鐘?我希望我24小時前問你:-) – 2010-07-19 14:51:12

相關問題