ASP.NET CORE中Projection和Join表之间有什么区别

时间:2019-07-12 03:31:43

标签: c# asp.net-core

他们是同一回事吗?以及哪种方法是从多个表查询数据的更好方法。我更喜欢使用投影方法,因为它很简单。

投影

  

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

加入表格

  

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

1 个答案:

答案 0 :(得分:0)

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

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

例如,每天获取登录计数与每天注册计数相比,将使用联接,因为登录计数和注册计数使用两个完全不相关的表并按日期联接,而不是userID。

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

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