Как сформулировать запросы на соединение в классе обслуживания домена? - PullRequest
0 голосов
/ 29 июня 2011

в классе обслуживания домена есть две сущности, которые я хотел бы использовать в запросе соединения: WorkerOnMachine {id (int), WorkerId (int), MachineId (int)} и Worker (WorkerId (int), Name (строка) ...)

Я хотел создать метод в классе обслуживания домена, который бы возвращал всех работников, работающих на выбранной машине (отношения между работниками и машинами хранятся в WorkerOnMachineTable), следующим образом:

public IQueryable<Worker> GetWorkerByMachineId(int machineId)
        {
            var joinedTable = from wom in this.ObjectContext.WorkerOnMachine
                              join w in this.ObjectContext.Worker on wom.WorkerId equals w.Id
                              where wom.MachineId == machineId
                              select new { w };
            return joinedTable as IQueryable<Worker>;
        }

но метод возвращает пустой список.Кто-нибудь знает, как правильно написать вышеуказанный метод в классе обслуживания домена?

Спасибо!

1 Ответ

1 голос
/ 29 июня 2011

Не используйте var, это вас смущает.

Как написано, joinTables является экземпляром IQueryable<AnonType>.Поскольку это не IQueryable<Worker>, приведение as возвращает ноль.

Вместо этого напишите:

IQueryable<Worker> joinedTable = ...

Затем исправьте:

select w;

и, наконец,:

return joinedTable;

(кстати, это соединение выглядит хорошо).

...