使用linq to entity,使用一个查询,通过特殊值搜索多个没有关系的表

时间:2016-07-30 09:08:09

标签: c# entity-framework linq

我有以下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 to Entity通过一个查询在3个表中找到一个没有关系的字段。我是Linq的新手,用谷歌搜索谷歌,但发现没有任何结果对我有用。 有谁能给我一个解决方案? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

如您的评论中所述,您想要查找是否至少有一个表格的结果,您可以使用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。这对我来说没用,除非你的目标是找到(我是否有匹配的结果),这正是上述查询所做的。