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

使用linq命令选择所有记录的单个列的数据,linq,Linq,我想使用Linq命令选择所有记录的特定列的数据 [HttpGet] public ActionResult DeleteRole(RoleManager model) { string [] getRole = (from r in Session.Query<RoleManager>() select r.roleName).ToArray(); foreach( var m

我想使用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);
    }
[HttpGet]
公共行动结果删除角色(角色管理器模型)
{
字符串[]getRole=(来自Session.Query()中的r)
选择r.roleName).ToArray();
foreach(getRole中的var myrole)
{
model.roleName=myrole.roleName;
}
返回视图(模型);
}

但它不起作用。请您指导我。

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

[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
    string[] roles = (from r in Session.Query<RoleManager>()
                      select r.roleName).ToArray();
    return View(roles);
}
。。。或者,如果确实需要修改模型,则需要模型本身来支持多个角色


请注意,这实际上并没有执行任何删除操作,因此在我看来,这是一个相当奇怪的操作名称…

在本例中,什么是
rolemager
?为什么你的
DeleteRole
方法实际上没有删除任何内容?在将来,请提供比“它不起作用”更详细的信息,这就像去看医生,说“我不舒服”,并期待没有更多信息的诊断。我只是在HttpGet方法中定义角色的值,我正在HttpPost方法中删除它。我尝试了您的答案2,但出现了错误传递到字典中的模型项的类型为“System.String[]”,但此字典需要“MvcMembership.Models.RoleManager”类型的模型项@Wasfa:是的,你也需要改变观点——但从根本上说,你需要弄清楚你想做什么。如果这不是删除角色,您不应该将其称为
DeleteRole
IMO。如果您想要单一模型,该模型需要包含视图中所需的所有内容-这可能意味着其中包含一组角色名称。@jonsket如果路径..../deleterole显示了可能在后续文章中删除的角色,这有什么问题?在我看来似乎合乎逻辑。@happygilmore:这不是删除角色,而是显示角色。我会使用一个只显示它们的URL,然后使用deleterole URL进行实际删除。无论如何,这显然不是问题所在——只是一个旁注而已。
[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
    string[] roles = Session.Query<RoleManager>()
                            .Select(r => r.roleName)
                            .ToArray();
    return View(roles);
}