2013-05-22 94 views
0

的价值我想建立一个查询计算有多少元素在数据库中是否有计算数量的数据库中记录有枚举 的某些价值我用这个查询具有枚举

Grower = db.Sites.Count(x => x.Categories == SiteCategories.Grower && x.Status == EntityStatus.Default) 

但它不正确,任何人都可以帮忙吗?

+0

什么SiteCategories。 Grower.ToString()?什么是x.Categories的数据类型和值? – Alex

+1

'不工作正确'没有帮助太多...错误的结果,不编译,抛出异常? –

+0

我想你需要一个像'(int)SiteCategories.Grower'这样的类型转换 – V4Vendetta

回答

0

如果数据库中的值是字符串,则需要在枚举上调用.ToString()以进行比较 - 否则将比较该值。

var myCount = db.Sites.Count(x => x.Categories == SiteCategories.Grower.ToString() && x.Status == EntityStatus.Default); 
1

在实体框架,枚举可以有以下基本 类型:字节,Int16类型,的Int32,Int64类型,或为SByte。

看看:Enumeration Support in Entity Framework

这意味着你将需要使用int值来搜索数据库,除非你保存的文字不知何故,所以你需要使用SiteCategories.Grower.ToString()