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

本文关键字:子句 where 框架 是否 实体 | 更新日期: 2023-09-27 18:16:43

我有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()
根原因:

我深入调查了这个问题,发现这是MySQL相关的问题。由于某些原因,字段是"Unsigned INT",因此数据库无法理解计算中的负值。

两种情况都可以

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

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

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

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