关于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
对象。你们做了什么?没有热切的话,一个查询将被分成三个选项以获得结果。
User
GetUser()
GetUserUserTypes().Where(userId exists)
我认为我应该进行Eager加载以及GetUserTypes().Where(userUserType exists)
(懒惰)加载,以便我真正想要验证Get()
(例如登录时)。