角色选择建议的多个方法参数

时间:2014-07-09 07:48:53

标签: c# linq entity-framework

我目前的方法:

    public static IEnumerable<ApplicationUser> GetListByRole(string role)
    {
        using (AppDbContext db = new AppDbContext())
        {
            return db.Users.Where(u => u.Roles.Any(r => r.Role.Name == role) && u.DateDeleted == null).ToList<ApplicationUser>();
        }
    }

我希望能够GetListByRole("Admin", "User")GetListByRole("Admin")

构造方法参数的最佳方法是什么?我使用字符串[]吗?如果是这样,我将如何更改LINQ查询?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用Contains方法:

public static IEnumerable<ApplicationUser> GetListByRole(params string[] roles)
{
    using (AppDbContext db = new AppDbContext())
    {
        return db.Users
                .Where(u => roles.Contains(u.Role.Name) && 
                       u.DateDeleted == null)
                .ToList<ApplicationUser>();
    }
}

params keyword允许您在不创建数组的情况下传递角色名称。但是您应该知道它还允许您传递0参数..