我需要一个优雅的解决方案来加载与我的主要实体相关的所有项目。
我们假设 Species ark. ant.
1 Actinocyclus actinochilus 7 55
2 Asterionella formosa 4 3
3 Aulacodiscus orientalis 1 NA
4 Aulacoseira granulata 3 5
5 Chaetoceros radicans 1 7
6 Corethron hystrix 6 NA
7 Coscinodiscaceae 1 NA
8 Dactyliosolen fragilissimus 32 5
9 Diadesmis gallica 1 NA
10 Diatoma hyemalis 1 5
11 Synedropsis hyperboreoides 4 28
12 Trigonium formosum 4 3
13 Urosolenia eriensis 2 2
14 Stephanopyxis turris NA 1
15 Striatella unipunctata NA 1
和users
有users
但roles
有roles
和groups
,我需要加载所有currency
我在尝试:
var users = db.Users
.Include("Roles")
.Include("Roles.Group")
.Include("Roles.Currency")
.Where(x => x.Status == "1")
.ToList();
但后来我得到Oracle 11.2.0.1.0 does not support APPLY
所以我带来了一个可怕的解决方案(它有效,但老实说,我不喜欢它):
var users = db.Users
.Include("Roles")
.Where(x => x.Status == "1")
.ToList();
// Then I load all nested objects in memory so I can reference them later.
foreach (var user in users)
{
user.Roles.Currency = user.Roles.Currency;
user.Roles.Group = user.Roles.Group;
user.Roles.Users = usuario.Roles.Users;
}
如果我在主要对象中有另一个集合,例如user.Roles.Group
,我必须使用另一个foreach
。
有关如何使此代码看起来更好并且表现更好的任何建议?