2009-07-29 10 views
1

Entity Frameworkの団体

  1. エージェント
  2. AgentsGroups
  3. グループ

AgentsGroupsは、3つの列を持つ単純なテーブルです。 1 idとエージェントとグループをリンクする2つの外部キー(各エージェントは複数のグループを持つことができます)。かなり基本的なもの。

Entity Frameworkは、テーブル間の関係を正しく認識します。 、AgentCode実際には、

from a in Agents 
    join ag in AgentsGroups on a.Code equals ag.AgentCode 
    join g in Groups on ag.GroupCode equals g.Code 
    where a.Code == 10199 
    select g.Name 

これは、しかし、のような非常にプログラム上では動作しません:今、LINQPadと私は、エージェントIDから始まるエージェントに関連付けられているすべてのグループの名前を取得することができていますGroupCodeはフィールドではなく、関連としてマッピングされます。

私はIncludeを使う必要があると思いますが、私は一度も使ったことがないので、要求されたヘルプは次のようなものです:どのようにして、 EFではるかに簡単事前

+0

与えられたクエリがうまくいかない理由は明確ではありません。あなたは何を得ているのですか? –

答えて

2

ありがとう:

from a in Agents 
where a.Code == 10199 
from g in a.Groups 
select g.Name 

あなたはEFに参加を使用することはほとんどありません。

+0

こんにちは、答えをありがとう、しかし、与えられた表現は私にグループのすべての行を与えました..どこに関連がありますか?暗黙の意味ですか? – pistacchio

+0

修飾子(たとえば、。)を注意深く見てください。これは暗黙的ではなく、ちょっとしたものです。私は協会のプロパティ名を推測していた。あなたはそれを別のものと呼んでいるかもしれません。 –