c#-使用Entity Framework 4.0检索数据的最佳实践
作者:互联网
我正在尝试了解使用实体框架的一些基本最佳实践.
我的EDM设计具有“组”和“用户”实体,“组”可以包含用户和其他组.
问题是:
从组中检索用户的最佳方法是什么?
为了使组变得容易,只需创建上下文对象并从groups表中创建列表即可.
但是,当我希望看到组中的用户时,上下文是关闭的(应该如此).
我考虑了两种方法:
1)将组发回,将其附加到上下文,并在Users上使用Load()方法并返回“用户列表”.
在这里,我不知道何时附加,何时不附加以及EDM何时增长,对于要加载的每个引用,我都必须做很多来回操作
2)从用户端查询linq.
从u上下文中从u.Groups.Contains(group)选择u的用户
在这里,我得到一个例外,即只能使用原始类型.
那么正确的做法是什么?
谢谢
罗尼
解决方法:
尚不清楚用户和组之间是一对多还是多对多关系.根据上面的描述,一个组可能包含用户-它是一对多的.根据您的代码:从u的context.Users中,其中u.Groups.Contains(group)选择u-多对多.因此,我将提供两种情况的样本.
一对多-一个组包含多个用户,一个用户只能属于一个组:
context.Users.Where(u => u.Group.Id == group.Id);
多对多-一个组包含多个用户,一个用户可以属于多个组:
context.Users.Where(u => u.Groups.Any(g => g.Id == group.Id));
标签:linq,c,entity-framework 来源: https://codeday.me/bug/20191209/2097880.html