-1

我想使用 Linq 命令选择所有记录的特定列的数据。这是我的代码

    [HttpGet]
    public ActionResult DeleteRole(RoleManager model)
    {

      string [] getRole = (from r in Session.Query<RoleManager>()
                            select r.roleName).ToArray();

      foreach( var myrole in getRole)
        {
            model.roleName = myrole.roleName;
        }

        return View(model);
    }

但它不起作用。你能指导我吗?

4

1 回答 1

0

您正在尝试选择roleName两次 - 第一次选择它时您已经做了正确的事情。您还roleName多次覆盖模型中的字段/属性,而大概您希望保留所有值。老实说,目前还不清楚要做什么model——但你应该能够创建一个只包含角色的视图:

[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
    string[] roles = (from r in Session.Query<RoleManager>()
                      select r.roleName).ToArray();
    return View(roles);
}

或者Select直接使用扩展方法,在这种情况下 IMO 更简单:

[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
    string[] roles = Session.Query<RoleManager>()
                            .Select(r => r.roleName)
                            .ToArray();
    return View(roles);
}

...或者如果您确实需要修改模型,则需要模型本身来支持多个角色。

请注意,这实际上并没有进行任何删除,这在我看来是一个相当奇怪的动作名称......

于 2013-10-10T12:37:22.900 回答