我有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”,因此数据库不理解计算中的负值。
两种情况都可以使用
答案 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();