<p>I have the following (pretty standard) table structure:</p>

<pre><code>Post &lt;-&gt; PostTag &lt;-&gt; Tag
</code></pre>

<p>Suppose I have the following records:</p>

<pre><code>PostID Title
1,     'Foo'
2,     'Bar'
3,     'Baz'

TagID Name
1,    'Foo'
2,    'Bar'

PostID TagID
1      1
1      2
2      2
</code></pre>

<p>In other words, the first post has two tags, the second has one and the third one doesn't have any.</p>

<p><strong>I'd like to load all posts and it's tags in one query</strong> but haven't been able to find the right combination of operators. I've been able to load either <em>posts with tags only</em> or <em>repeated posts when more than one tag</em>.</p>

<p>Given the database above, <strong>I'd like to receive three posts and their tags (if any) in a collection property of the Post objects</strong>. Is it possible at all?</p>

<p>Thanks</p>

I've answered this in another post :
About eager loading
. In your case it would probably be something like :
```
```
DataLoadOptions options = new DataLoadOptions();    
options.LoadWith<Post>(p => p.PostTag);
options.LoadWith<PostTag>(pt => pt.Tag);
```
```
Though be careful - the DataLoadOptions must be set BEFORE ANY query is sent to the database - if not, an exception is thrown (no idea why it's like this in Linq2Sql - probably will be fixed in a later version).