是否有使用内部联接 AND IN() 语句的 Linq 实体框架查询?

我发现 linq 可用于内部联接和 In 语句,但无法让两者一起运行。这个SQL语句可以转换成Linq吗?


SELECT * FROM Card

INNER JOIN Colours ON Card.Id = Colours.CardId

WHERE Colours.Colour IN (CHARARRAY)


慕莱坞森
浏览 109回答 2
2回答

侃侃尔雅

我认为下面的伪代码会对您有所帮助var colorsArr = new char[];var db = new MyContext();from card in db.Cardsjoin color in db.Colors on card.Id equals color.CardIdwhere (from ch in colorsArr select ch).Contains(color.Colour)select new {card, color}

aluckdog

cards.Join(_db.Colours,            x => x.Id,            z => z.CardId,            (x, z) => new {x, z}).Where(x => filter.ColourFilter.Contains(x.z.Colour))            .Select(x => x.x).ToList();上面的代码是我的问题的答案,.Join扩展方法用于连接两个表,然后使用linq来过滤 array中包含的项目。.Wherecards是我的初始对象子集,_db也是我的实体框架数据库上下文。
打开App,查看更多内容
随时随地看视频慕课网APP