0

ドメインサービスクラスには、結合クエリで使用したい2つのエンティティがあります。WorkerOnMachine{id(int)、WorkerId(int)、MachineId(int)}とWorker(WorkerId(int)、Name(string))です。 。)

選択したマシンで動作するすべてのワーカーを返すドメインサービスクラスのメソッドを作成したいと思いました(ワーカーとマシンの関係は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>;
        }

しかし、メソッドは空のリストを返します。ドメインサービスクラスで上記のメソッドを書く正しい方法を知っている人はいますか?

ありがとうございました!

4

1 に答える 1

1

varを使用しないでください。混乱します。

書かれているように、joinedTablesはのインスタンスですIQueryable<AnonType>IQueryable<Worker>キャストではないため、 asnullを返します。

代わりに、次のように記述します。

IQueryable<Worker> joinedTable = ...

次に修正します:

select w;

そして最後に:

return joinedTable;

(ところで、その結合はよさそうだ)。

于 2011-06-29T17:02:28.570 に答える