使用linq-to实体通过一个查询按特殊值搜索多个没有关系的表

本文关键字:搜索 没有关系 一个 实体 linq-to 使用 查询 | 更新日期: 2023-09-27 17:59:21

我有以下linq查询:

var bas = new BaskoolEntities();
var radif = "0011395000505000821";
            var query = (from a in bas.ChekedList
                where a.Radifkolsal == radif
                from b in bas.PrioritedList
                where b.Radifkolsal == radif
                from c in bas.IssuedBills
                where c.Radifkolsal == radif
                select new
                {
                    a,
                    b,
                    c
                }).ToList();

我想通过使用C#中的Linq到Entity的一个查询,在数据库中的3个表中找到一个没有关系的字段。我是林克编程的新手,在谷歌上搜索它,但没有发现任何对我有用的结果。有人能给我一个解决方案吗?提前谢谢。

使用linq-to实体通过一个查询按特殊值搜索多个没有关系的表

正如您的评论中所说,您想至少查找其中一个表是否有结果,您可以使用Any():执行类似的操作

var radif = "0011395000505000821";
var found = (from a in bas.ChekedList
             where a.Radifkolsal == radif
             || bas.PrioritedList.Any(p => p.Radifkolsal == radif)
             || bas.IssuedBills.Any(i => i.Radifkolsal == radif)
             select a).Any();

如果使用var result = ..... select a.Radifkolsal,则会得到值0011395000505000821或null。这对我来说是无用的,除非你的目标是找到(我是否有匹配的结果),这正是上面的查询所做的。