枚举lambda表达式的谓词

时间:2014-10-18 07:32:40

标签: c# linq entity-framework enums

我一直在搜索如何将lambum表达式/ LINQ查询中的枚举转换为谓词到EF。例如,我有以下枚举:

public enum MyEnum
{
  [Display(DisplayName="FirstDesc")
  First = 0,
  [Display(DisplayName="SecondDesc")]
  Second = 1,
  [Display(DisplayName="ThirdDesc")]
  Third = 2
}

我的LINQ查询是

var query = (from a in context.users
             select new { Desc = 
             case when Status==(int)MyEnum.First ? "FirstDesc" :
             case when Status==(int)MyEnum.Second ? "SecondDesc":
             case when Status==(int)MyEnum.Third ? "ThirdDesc" : "Unknown" });

我希望实现这一点,一旦我向枚举添加新项目,linq查询会自动将条件调整为枚举中的所有项目。

任何帮助都将不胜感激。

0 个答案:

没有答案