2011-06-10 32 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配置“连线”这个方法,否则它不会和你一起玩。