查找某个表中不存在的记录

本文关键字:不存在 记录 查找 | 更新日期: 2023-09-27 18:18:55

我有2个表(表Mngr和VWE)我希望我的查询返回table Mngr记录,其中w.Mdlo.CM相等(所有模型相等),但在表VWE中不存在。

有人能帮我写吗?

     table Mngr                  table VWE
    ------------                -----------
    CM      CV                   Mdl     Vrs
    a       5                    a       1
                                 b       2
                                 a       3

这里:我希望它返回CM a and CV 5Mngr中的行,因为版本5是新的

你能帮我如何用Linq写吗?

var q = (from o in Mngr 
            from v in VWE
                .Where(w=>
                    w.Mdl == o.CM &&
                    w.Vrs != o.CV)
                    where o.Mod == 1
                    select o).distinct();

谢谢

查找某个表中不存在的记录

您应该检查VME set中是否没有匹配记录:

Mngr.Where(m => m.Mod == 1 && !VME.Any(v => v.Mdl == m.CM && v.Vrs == m.CV))
查询语法

from m in Mngr
where m.Mod == 1 !VME.Any(v => v.Mdl == m.CM && v.Vrs == m.CV)
select m

试试这个查询

from s in context.Mngr 
where !context.VWE.Any(es=>(es.mdl==s.cm)&&(es.vrs==s.vc))
select s;

考虑到

o。表VWE中不存在cv

var query = Mngr.Where(m => VWE.Any(v => v.Mdl == m.CM) && 
                            !VWE.Any(v => v.Vrs == m.CV));