使用linq命令选择所有记录的单列数据

时间:2013-10-10 12:31:59

标签: linq

我想使用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);
    }

但它没有用。你能指导我。

1 个答案:

答案 0 :(得分: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);
}

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

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