【问题标题】:Entity Framework Associations实体框架关联
【发布时间】:2009-07-29 17:30:13
【问题描述】:

我已经从三个数据库表中创建了一个带有实体框架的模型:

  1. 代理
  2. 代理组

AgentsGroups 是一个包含三列的简单表:1 个 id 和两个链接 Agents 和 Groups 的外键(每个 Agent 可以有多个 Groups)。很基本的东西。

Entity Framework 正确识别表之间的关系。现在,使用 LINQPad,我可以从代理 ID 开始获取与代理关联的所有组的名称:

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

不过,这并不适用于程序本身,因为事实上,AgentCode 和 GroupCode 被映射为关联,而不是字段。

我想我必须使用 Include,但我从未使用过它,所以请求的帮助是:如何将给定的半工作 linq 表达式转换为给出组名称但使用关联的类似表达式?

提前致谢

【问题讨论】:

  • 不清楚为什么给定的查询不起作用。您遇到的具体问题是什么?

标签: c# linq entity-framework


【解决方案1】:

在 EF 中更简单:

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

你几乎从不在 EF 中使用 join。

【讨论】:

  • 嗨,谢谢你的回答,但给定的表达式给了我所有的行在组中..关联在哪里?它是隐含的吗?
  • 仔细查看限定词(例如 a.)。这不是隐含的,只是很小。我在猜测关联属性名称;你可能已经给它起了别的名字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多