在不使用INCLUDE + Oracle 11.2.0.1.0的情况下加载嵌套对象不支持APPLY

时间:2015-12-14 16:58:19

标签: c# oracle entity-framework linq

我需要一个优雅的解决方案来加载与我的主要实体相关的所有项目。 我们假设 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 usersusersrolesrolesgroups,我需要加载所有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

有关如何使此代码看起来更好并且表现更好的任何建议?

0 个答案:

没有答案