2014-04-05 89 views
1

我得到一個NotImplementedException,並顯示消息「方法或操作未實現」。當使用帶有MySQL的實體框架6.0運行以下LINQ查詢時。Take()拋出未實現異常使用MySQL實體框架6

entities.Member. 
    Where(m => m.MemberSite.Any(s => s.SiteID == siteID)). 
    OrderByDescending(m => m.DateCreated).Take(50).ToList(); 

以下(減去Take(50))然而工作正常。

entities.Member. 
    Where(m => m.MemberSite.Any(s => s.SiteID == siteID)). 
    OrderByDescending(m => m.DateCreated).ToList(); 

其他人看到這個問題,並找到解決辦法嗎?

+0

您使用什麼MySQL客戶端進行連接?確保你使用的是最新版本。 –

+0

我們正在使用MySQL 6.8.3,我相信這是推薦使用Entity Framework 6.0的版本 – fungus1487

回答

0

我從另一個角度來解決問題,產生相同的結果。我在MySQL的實體框架中遇到了Any()和All()LINQ方法的問題,因此應該知道這些是問題。

取而代之,執行以下操作會產生正確的結果。

entities.MemberSite. 
    Where(s => s.SiteID == siteID).Select(s => s.Member). 
    OrderBy(m => m.DateCreated).Take(50).ToList(); 
0

是不是有一個原因,你不使用LINQ語法?我認爲閱讀起來比較容易。這是您的解決方案的替代方案:

from s in entities.MemberSite 
where s.SiteID == siteID 
orderby s.DateCreated 
select s.Member).Take(50).ToList(); 
+0

MemberSite沒有DateCreated字段,我更喜歡流利的語法。但每一個都是屬於自己的。 – fungus1487

相關問題