我有以下(非常标准)表结构:
Post <-> PostTag <-> Tag
Run Code Online (Sandbox Code Playgroud)
假设我有以下记录:
PostID Title
1, 'Foo'
2, 'Bar'
3, 'Baz'
TagID Name
1, 'Foo'
2, 'Bar'
PostID TagID
1 1
1 2
2 2
Run Code Online (Sandbox Code Playgroud)
换句话说,第一个帖子有两个标签,第二个标签有一个标签,第三个标签没有标签.
我想在一个查询中加载所有帖子及其标签,但无法找到正确的运算符组合.我已经能够加载带有标签的帖子或多个标签时重复的帖子.
鉴于上面的数据库,我想在Post对象的collection属性中收到三个帖子及其标签(如果有的话).有可能吗?
谢谢
我在另一篇文章中回答了这个问题:关于急切加载。在你的情况下,它可能是这样的:
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Post>(p => p.PostTag);
options.LoadWith<PostTag>(pt => pt.Tag);
Run Code Online (Sandbox Code Playgroud)
不过要小心 - DataLoadOptions 必须在任何查询发送到数据库之前设置 - 如果没有,则会抛出异常(不知道为什么在 Linq2Sql 中会这样 - 可能会在以后的版本中修复)。
| 归档时间: |
|
| 查看次数: |
3996 次 |
| 最近记录: |