我有一个表,让我们说事务,它有几列,数据看起来像这样:
Id -------金额------- Isvoid ----------- ImpactId
1 -------- 300.00 ---------- 0 ---------------- NULL
2 -------- 500.00 ---------- 0 ---------------- NULL
显示交易发生时插入的数据。
现在当发生任何特定事务的空白时,会插入一个新行,并且该行的Isvoid为1,而ImpactId是无效的相应事务的Id。
假设金额500.00无效,表格如下:
Id -------金额------- Isvoid ----------- ImpactId
1 -------- 300.00 ---------- 0 ---------------- NULL
2 -------- 500.00 ---------- 0 ---------------- NULL
3 -------- 500.00 ---------- 1 ----------------- 2
现在我想要检索那些没有空洞的行。
Iam尝试在Linq中编写查询,如下所示,但它显示了所有记录。
from t in Context.Transaction.Where(t => t.Isvoid == false && t.ImpactID != null)
我只希望交易无效。
如何在Linq中编写相同内容。
提前致谢。
答案 0 :(得分:1)
如果您将IsVoid的值写为数字,则查询必须如此:
from t in Context.Transaction.Where(t => t.Isvoid != 1 && t.ImpactID == null)
但是如果你把它写成布尔值,它应该是这样的:
from t in Context.Transaction.Where(t => t.Isvoid == false && t.ImpactID == null)
答案 1 :(得分:1)
如果事务不无效, !=
from t in Context.Transaction.Where(t => t.Isvoid == false && t.ImpactID == null)
答案 2 :(得分:0)
我知道你已经接受了答案,有一种简单的方法可以获得无效的交易。
var notVoided = Transactions.Where( t => t.ImpactId == null
&& !Transactions.Any( t2 => t2.ImpactId == t.Id));