如何加载非实体查询
本文关键字:实体 查询 加载 何加载 | 更新日期: 2023-09-27 17:58:57
我的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);
然而,它抱怨需要显式地指定类型。我该如何解决这个问题?
"无休止查询"实际上并不是一件事。您所写的是一个"Invoke"操作。你只需要用不同于客户的方式来称呼它。
context.GetTop5ActiveUsersByManagementMessages(GetActiveUsersCallback, null)
当您将一个方法添加到DataContext时,它希望您在该上下文的配置中指定某些内容,如返回类型。
这些文章讨论了将存储过程公开为方法,但它将使您了解EF所期望的内容。
如果你确实通过设计器创建了一个新方法,那么如果你想的话,你可能可以手动进入EF XML文件并添加返回类型定义等
http://msdn.microsoft.com/en-us/library/bb384566.aspx和http://msdn.microsoft.com/en-us/library/bb629304.aspx.
我认为你需要把EF配置的方法"连接起来",否则你会觉得不太好。