Как загрузить не связанные с сущностью запросы? - PullRequest
0 голосов
/ 10 июня 2011

У меня есть это в моей доменной службе 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);

Однако он жалуется на необходимость явного указания типов. Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

«Не-сущностные запросы» на самом деле не вещь.То, что вы написали, это операция «Вызвать».Вам просто нужно позвонить не так, как клиент.

context.GetTop5ActiveUsersByManagementMessages(GetActiveUsersCallback, null)
0 голосов
/ 11 июня 2011

Когда вы добавляете метод в DataContext, он ожидает, что вы зададите определенные вещи, такие как тип возвращаемого значения в конфигурации для этого контекста.

В этих статьях рассказывается о том, как представить хранимые процедуры как методы, но это даст вам представление о том, что ожидает EF.

Если вы создадите новый метод с помощью конструктора, вы, возможно, сможете зайти в XML-файлы EF и вручную добавить определения возвращаемого типа и т. Д.

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

Я думаю, вам нужно "подключить" метод к конфигурации EF, иначе он вам не подойдет.

...