【发布时间】:2014-03-13 07:47:30
【问题描述】:
我有一个类似下面的模型,其中 PermissionGroup 与 Permission 有 1-Many 关系,Permission 和 Roles 有 Many-Many 关系。
PermissionGroup 1-----* Permission *--------* Role
我必须能够以以下格式返回 JSON:
PermissionGroupId : 1,
PermissionGroupName : "Market",
Permissions : [
{PermissionId : 1, PermissionName : "Create"},
{PermissionId : 2, PermissionName : "Update"}
]
这将被要求提供特定的RoleId。
问题:
因为PermissionGroup 与Role 没有直接关系,所以我无法进行Where linq 查询。我可以执行以下操作,但它不会像上面那样返回所需的结果。
public JsonResult GetRolePermission(int roleid)
{
var list = con.PermissionGroups.Select(pg => new
{
PermissionGroupId = pg.PermissionGroupId,
PermissionGroupName = pg.PermissionGroupName,
Permissions = pg.Permissons.Select(pe => new
{
PermissionId = pe.PermissionId,
PermissionName = pe.PermissionName
})
})//Maybe do the where query here somehow like where(f => f.RoleId == roleid);
return Json(list);
}
欢迎提出任何建议。
【问题讨论】:
-
您的 json 没有任何
Roles成员。满了吗?roleid是什么?与PermissionGroups是如何联系的? -
@Tony 感谢您的评论。是的,它没有,它是完整的 JSON 规范。我当时想不出别的。所以,我尝试了我的想法。
RoleId是Role实体的主要标识符。请参阅我上面发布的图表了解它们的关系。
标签: c# asp.net-mvc json linq entity-framework