在 LINQ to 实体中何时使用 JOIN 以及何时不使用
我是 Linq 的新手,我发现如果有多个实体,有些实体会使用如下所示的多个 FROM 语法:
from h in db.Hubs
from ch in h.CityHubs where ch.Cities.CityID == 1
select
有些实体会使用显式连接语法。
from h in db.Hubs
join ch in da.CityHubs on h.CityId equals ch.CityId
select
如果我使用 Linq toEntity,我应该使用哪一个?如果我要使用 Linq to object,我应该使用哪一个?
I am new to Linq and I have seen that if there are multiple entities, some use the multiple FROM syntax like this:
from h in db.Hubs
from ch in h.CityHubs where ch.Cities.CityID == 1
select
and some use the explicity join syntax.
from h in db.Hubs
join ch in da.CityHubs on h.CityId equals ch.CityId
select
If I am using Linq to entities, which one should I use? If I were to use Linq to objects, which one should I use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通常,在实体框架中,如果您有正确的模型并正确设置了外键的导航属性,则几乎不应该使用
join
- 相反,您直接访问导航属性,EF 将生成SQL 代码中必要的join
。我建议您查看 @Craig Stuntz 关于此问题的博客文章。然而,关于 Linq-to-objects,它取决于您正在编写的特定查询。
As a rule, in Entity Framework, if you have a proper model and properly set up navigation properties for foreign keys, you should almost never use
join
- instead you access your navigational property directly and EF will generate the necessaryjoin
in the SQL code for you. I recommend taking a look at @Craig Stuntz's blogpost regarding this issue.Regarding Linq-to-objects, however, it depends on the particular query you are writing.