将多个Include()与嵌套Select()一起使用时,

我正在将Entity Framework与MySQL配合使用。假设我有以下实体:


Country

State

City

Car

Building

要热切地包括到Cars,我可以使用以下方法:


context.Countries.

    Include(c => c.States.Select(s => s.Cities.Select(ci => ci.Cars))).ToList();

类似地,要包括到的所有内容Buildings,我可以使用:


context.Countries.

    Include(c => c.States.Select(s => s.Cities.Select(ci => ci.Buildings))).ToList();

他们俩都很好。现在,我想将这两个结合起来以同时包含Cars和Buildings,所以我要执行以下操作:


context.Countries.

    Include(c => c.States.Select(s => s.Cities.Select(ci => ci.Cars))).

    Include(c => c.States.Select(s => s.Cities.Select(ci => ci.Buildings))).ToList();

但是每当我将两者结合在一起时(使用上面的代码),它就会在内部异常中引发EntityCommandExecutionException带有以下消息的异常:


{““字段列表”中的未知列“ Apply1.Id””}


我花了两个小时试图弄清楚查询出了什么问题,最后,我决定使用SQL Server对其进行测试,并且该查询没有任何问题。


总结一下我的问题:


知道为什么这不适用于MySQL吗?而且查询本身有问题吗?

是否有任何解决方法/替代方法可使用MySQL来实现?

请注意,这种情况仅发生在第三级(的第二级Select),例如,以下操作就可以了:


context.Countries.

    Include(c => c.States.Select(s => s.Cities.Select(ci => ci.Cars))).

    Include(c => c.States.Select(s => s.Laws.Select(l => l.PrivacyLaws))).ToList();


慕莱坞森
浏览 535回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP