c# - 按日期降序获取被禁用户列表

标签 c# asp.net linq linq-to-sql asp.net-membership

我正在做这样的事情来获取所有已被阻止的用户的列表:

public IQueryable<Aspnet_User> GetBannedUsers()
{
    return db.Aspnet_Memberships.Where(x => x.IsApproved == false).Select(x => x.Aspnet_User);
}

我这样做是为了阻止用户:

MembershipUser user = Membership.GetUser(username);
if (user != null)
{
    user.IsApproved = isApproved;
    Membership.UpdateUser(user);
}

如何获取按被禁日期排序的被禁用户列表。 最近被禁止的应该排在第一位。

最佳答案

默认情况下,asp.net 成员资格不存储此日期,因此您必须使用变通方法。一种简洁的方法是引入您自己的表,但我建议滥用 LastLoginDate。只要用户未正确登录(您的 !isApproved 将防止发生这种情况),默认机制就不会触及此日期。

修改代码以阻止用户:

MembershipUser user = Membership.GetUser(username);             
if (user != null)             
{                 
  user.IsApproved = isApproved;
  user.LastLoginDate = DateTime.Now;
  Membership.UpdateUser(user);             
}

根据禁止日期排序的代码,复制粘贴自@Femaref 的回答:

public IQueryable<Aspnet_User> GetBannedUsers()            
{ 
  return db.Aspnet_Memberships          
    .Where(x => x.IsApproved == false)                        
    .OrderByDescening(x => x.LastLoginDate) 
    .Select(x => x.Aspnet_User);
}

关于c# - 按日期降序获取被禁用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133313/

相关文章:

c# - 不同的列表 LINQ 查询

c# - 如何使用 linq 选择锯齿状数组的列

c# - 结合其他对象列表构建新的对象列表

c# - Foo<T> where T : BaseObject and Foo<BaseObject> 之间的区别

C# 创建一个比较两个成员属性的 LambdaExpression(对于 EF Core HasQueryFilter)

c# - 在依赖类型上找不到导航属性

c# - ASP.NET Repeater - 显示数据绑定(bind)列表<T> 的属性列表<T1>

c# - 单击按钮以获取数据wpf mvvm

asp.net - 具有多个更新面板的更新面板动画扩展器

asp.net - 将ASP.NET MVC放入WebForms页面