【问题标题】:Ordering by an Enum attribute按枚举属性排序
【发布时间】:2013-08-08 08:55:56
【问题描述】:

我在 EF5 中使用了一个名为 flags 的枚举属性。这些标志之一是“粘性”标志。我有一个我想按日期订购的项目列表,但我希望所有的便利贴都在顶部。有没有办法先检索所有便笺,按日期排序,然后所有其余的,按日期排序?

我的枚举声明是:

[Flags]
public enum ForumTopicFlags : int
{
    None = 0,
    Sticky = 1,
    Spam = 2,
    Deleted = 4,
    Locked = 8
}

【问题讨论】:

  • 您不能直接在 Sticky 上订购,然后按日期订购就完成了吗?特别是如果 Enum 只有两个值?
  • Sticky 是枚举属性的标志值。
  • 那个标志值不是下面的整数吗?该列在数据库中的不同值是什么?还是位掩码?
  • 我已经用我的枚举声明更新了帖子。

标签: .net sql entity-framework enums entity-framework-5


【解决方案1】:

很简单,真的:

var result = myList
     .OrderByDescending(x => (x.Flags & ForumTopicFlags.Sticky) != 0)
     .ThenBy(x => x.Date);

【讨论】:

  • 这个语句需要一些括号; .OrderByDescending(x => (x.Flags & ForumTopicFlags.Sticky) != 0) 但除此之外它很棒。
  • @MikaelÖstberg 谢谢,我忘了。现在已经修好了。
猜你喜欢
  • 2020-07-20
  • 2017-07-21
  • 2020-06-07
  • 2015-10-02
  • 1970-01-01
  • 2011-01-09
  • 2018-06-23
  • 2011-02-16
  • 2017-05-28
相关资源
最近更新 更多