无法通过linq从一对多关系获取填充的EF对象

时间:2014-05-09 19:59:16

标签: sql-server linq entity-framework

我在使用EF和linq从数据库中获取数据时遇到问题。在高层次上,我想要一个完全填充的对象,包括来自我的DB的许多方面的数据。

我有一个AppUser表,一对多地链接到AppUser_AppRole表,再次,将一对多链接到我们的数据库中的AppRole表。我已经仔细检查了那里的FK。

现在,我希望能够做这样的事情来取回我想要的东西。

var currentAppUser = context.AppUsers
              .Where(x=>x.Id == currentAppUserId.Value)
              .Include(x=>x.AppRoles)
              .FirstOrDefault();

我可以输出这个,VS不会抱怨,但是当我运行它时,我在currentAppRole中获得了正确的用户,但在AppRoles中却没有。但是当我运行以下查询时,我会得到两行,然后回来。所以我知道我上面的linq做错了。

select au.id, au.adusername, ar.id, ar.RoleName 
from appuser au join AppUser_AppRole auar on au.id = auar.AppUserID join approle ar on auar.AppRoleID = ar.ID 
where au.id = 4

以下是这些表的模型。 model from vs

我希望有人可以帮我理解这一点。只要我认为我有一个EF \ linq的句柄,我就做我以前做的,但我得到不同的结果(像这样:<)。我很沮丧。任何帮助,将不胜感激。谢谢。

PS我已经尝试了另一种表示法,来自... ...(lambda表达式?)但是我不确定这是否有效,因为我不知道在哪里\怎么做.Includes。< / p>

0 个答案:

没有答案