无法通过edmx和LinQ中的Include获取相关表

时间:2013-12-10 01:42:51

标签: c# linq edmx

现在我有3张桌子:

tbl_User:UserID,UserName

tbl_Role:RoleID,RoleName

tbl_UserRole:UserID,RoleID

关系是:tbl_User - tbl_UserRole - tbl_Role(许多角色为1个用户,许多用户为1个角色)

在edmx中,我尝试使用这样的:

var users =
    ((from u in DbContext.tbl_User
    join ur in DbContext.tbl_UserRole on u.UserID equals ur.UserID
    join r in DbContext.tbl_Role on ur.RoleID equals r.RoleID
    select u) as ObjectQuery<tbl_User>).Include("tbl_UserRole").Include("tbl_Role");

我需要获取tbl_User和RoleName(在tbl_Role中)的信息。 我怎样才能做到这一点?

请指教。 感谢。

1 个答案:

答案 0 :(得分:0)

如果你只是想让用户获得他们的角色,那么你不能只是:

var users = DbContext.tbl_User.Include("tbl_Role")

如果没有更清楚地了解您的实体关系,我将假设这将有效。如果您要显示实体类或EDMX设计器的图片,则可能会发布更相关的答案

修改 假设上面的代码提取了您的用户,您可以按如下方式访问角色:

users.First().tbl_role.Select(x => x.RoleName);