实体框架,是否可以在where子句中使用substract

时间:2016-11-07 13:14:45

标签: c# entity-framework

我有2个数据库字段,需要根据这些值过滤结果。

作为示例,客户使用最大存储位置和存储位置。为了确定某人是否正在使用更多空间,我想这样做。

var temp = db.Storege.Where(o => (o.max_storage_places - o.places_in_use) < 0).ToList()

但这不起作用。这是可能的还是应该使用不同的方法?

编辑:

数据库是MySQL,它通过实体框架使用。这两个字段的数据类型都是数据库中的INT值。

我测试了以下版本的工作原理

var temp = db.Storege.Where(o => o.max_storage_places < o.places_in_use).ToList()

ROOT原因:

我正在更深入地研究这个问题,并发现这是与MySQL相关的问题。这些字段由于某种原因“无符号INT”,因此数据库不理解计算中的负值。

两种情况都可以使用

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。但你必须使用ToList()从数据库中获取记录。

var temp = db.Storege.Where(o => (o.max_storage_palces - o.places_in_use) < 0).ToList();

OR

var temp = db.Storege.Where(o => (o.max_storage_palces < o.places_in_use ).ToList();