首页 > 解决方案 > ASP.NET CORE 中的 Projection 和 Join 表有什么区别

问题描述

它们是一样的吗?哪一种是从多个表中查询数据的更好方法。我更喜欢使用投影方法,因为它非常简单。

投影

https://benjii.me/2018/01/expression-projection-magic-entity-framework-core/

连接表

https://entityframeworkcore.com/querying-data-joining

标签: c#asp.net-core

解决方案


如果您在谈论实体框架,如果它是一个选项,并且您只是关注外键(即导航属性),则选择可能会更好。

但是,如果您需要使用不寻常的方法进行连接,特别是在相关数据上,那么连接有时是更好(或有时唯一)的选择。

例如,将每天的登录计数与每天的注册计数相比较,将使用联接,因为登录计数和注册计数使用两个完全不相关的表并在日期加入,而不是用户 ID。

获取属于所有活动用户的活动列表,您可以使用 Select 来完成,因为“属于”关系由 FK 表示。

最后,不要忘记 Select 允许您从单个表中获取数据子集,而 join 要求您将两个表连接在一起然后过滤到一个子集。


推荐阅读