为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕莱坞森 2023-09-09 16:52:14
我发现 linq 可用于内部联接和 In 语句,但无法让两者一起运行。这个SQL语句可以转换成Linq吗?SELECT * FROM CardINNER JOIN Colours ON Card.Id = Colours.CardIdWHERE Colours.Colour IN (CHARARRAY)
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

我认为下面的伪代码会对您有所帮助


var colorsArr = new char[];

var db = new MyContext();


from card in db.Cards

join color in db.Colors on card.Id equals color.CardId

where (from ch in colorsArr select ch).Contains(color.Colour)

select new {card, color}


查看完整回答
反对 回复 2023-09-09
?
aluckdog

TA贡献1847条经验 获得超7个赞

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中包含的项目。.Where

cards是我的初始对象子集,_db也是我的实体框架数据库上下文。


查看完整回答
反对 回复 2023-09-09
  • 2 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信