c# - EF Core Linq 使用方法语法加入 OR 条件

标签 c# .net linq entity-framework-core

<分区>

我怎样才能把它变成一个查询?

var result1 = await _dbContext.Emails.Join(_dbContext.Sms,
                                    pn => pn.PNID,
                                    sms => sms.From_PNID.Value,
                                    (pn, sms) => new { sms, pn });


var resut2 = await _dbContext.Emails.Join(_dbContext.Sms,
                                    pn => pn.PNID,
                                    sms => sms.To_PNID.Value,
                                    (pn, sms) => new { sms, pn });

想要像 ON pn.PNID == sms.To_PNID OR pn.PNID == sms.From_PNID

最佳答案

您可以尝试使用 SelectMany 扩展方法来做到这一点:

var result1 = await  dbContext.Emails
                    .SelectMany(e=>dbContext.Sms.Where(s=>e.PNID==From_PNID.Value 
                                                       || e.PNID==To_PNID.Value)
                                                .Select(e=>new {Email=e,SMS=s})).ToListAsync();

关于c# - EF Core Linq 使用方法语法加入 OR 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152535/

相关文章:

c# - 我的 Enumerable 类不适用于 C# 中的 .where 等 Linq 语句

c# - 在 asp.net core 中将字典发布到 web api

c# - Xml Xsd 验证失败 (xs :anyType)

.net - 什么是 ".Net Identity"?

c# - 如何对 Enum 执行 LINQ 查询?

c# - 我无法让 Visual Studio 2015 更改新版本的程序图标

c# - 在 .NET/C# 上下文中,什么是二分搜索以及如何/为什么使用二分搜索?

.net - 如何始终启用询问智能卡 PIN 码的对话框?

c# - 确保我的 SQL 查询是正确的

c# Dapper - 在 QueryAsync 方法上使用 linq