2011-06-10 27 views
0

我有這個在我的WCF域名服務:如何加載非實體查詢?

public List<string> GetTop5ActiveUsersByManagementMessages() 
    { 
     return this.ObjectContext.Logs 
     .Where(w => w.Message == "Created User" || 
       w.Message == "Removed User" || w.Message == "Updated User") 
     .GroupBy(w => w.Username) 
     .OrderByDescending(g => g.Count()) 
     .Select(s => s.Key) 
     .Take(5).ToList(); 
    } 

現在我想將其加載到我的視圖模型是這樣的:

context.Load(context.GetTop5ActiveUsersByManagementMessages(), 
      GetActiveUsersCallback, true); 

然而,抱怨需要明確指定類型。我該如何解決?

+0

什麼類型的對象是上下文,DataContext? – Amasuriel 2011-06-10 19:57:10

+0

@Amasuriel DomainContext – 2011-06-10 20:24:05

回答

0

'非實體查詢'實際上不是一件事情。你寫的是「調用」操作。您只需要以與客戶端不同的方式調用它。

context.GetTop5ActiveUsersByManagementMessages(GetActiveUsersCallback, null) 
0

將方法添加到DataContext時,它期望您指定某些內容,例如該上下文的配置中的返回類型。

這些文章討論的是如何將存儲過程公開爲方法,但是它會讓你知道EF期望的內容。

如果您確實通過設計器創建了一個新方法,那麼您可能會進入EF XML文件並手動添加返回類型定義等。

http://msdn.microsoft.com/en-us/library/bb384566.aspxhttp://msdn.microsoft.com/en-us/library/bb629304.aspx

我認爲你需要用EF配置「連線」這個方法,否則它不會和你一起玩。