C#Dapper决定“懒惰或急切负载”

时间:2017-02-28 05:28:22

标签: c# entity-framework lazy-loading dapper eager-loading

关于POCO(在这种情况下是Dapper)和LAZY与EAGER加载以及何时使用这两种方法的经验法则是什么?

修改应用程序并用Dapper替换实体框架并即将实现我的User存储库类,我想知道“我是否应该查询UserType表并将User与{一起返回} {1}}“(基本上我应该急切加载)?

我的直觉说“实施两种方法”UserType只能得到Get()

User

还实现了一个SELECT * from USER(这将适用于所有相关的表),看起来像

GetEager()

这也说(对于SELECT u.ID, u.[NAME], u.EMAIL, ut.ID, ut.[NAME] FROM [USER] u JOIN USER_USER_TYPE uut on u.ID = uut.[USER_ID] JOIN USER_TYPE ut on uut.USER_TYPE_ID = ut.ID)案例“......我最终会得到一个大型查询来附加与用户相关的所有内容,这样我就可以避免多次查询 - 有点像Eager()在这种情况下我可以查询InMemory EF对象。你们做了什么?没有热切的话,一个查询将被分成三个选项以获得结果。

  1. User

  2. GetUser()

  3. GetUserUserTypes().Where(userId exists)

  4. 我认为我应该进行Eager加载以及GetUserTypes().Where(userUserType exists)(懒惰)加载,以便我真正想要验证Get()(例如登录时)。

0 个答案:

没有答案