这是在 .netCore 项目中使用 LINQ 查询连接两个表的正确方法吗?
Posted
技术标签:
【中文标题】这是在 .netCore 项目中使用 LINQ 查询连接两个表的正确方法吗?【英文标题】:Is this the right way to join two tables using LINQ query in .netCore project? 【发布时间】:2021-12-20 11:42:06 【问题描述】:好吧,我熟悉 mysql 中的 sql 查询,但现在我需要使用 LINQ 查询来调用数据库并从那里获取记录,但我在加入表和获取通用时卡住了这些表中的记录。
submittedDatabaseResponseList = (from submitted in _admissionsContext.ApplicationSubmittedSlate
join started in _admissionsContext.ApplicationStartedSlate on new submitted.SlateID, submitted.RoundKey equals new started.SlateID, started.RoundKey
where submitted.IsSuccess == false
where started.SalesforceOpportunityID != null
where submitted.FailedAttempts < 5
select new ApplicationSubmittedSlate()
SalesforceOpportunityID = submitted.SalesforceOpportunityID,
SlateID = submitted.SlateID,
GPID = submitted.GPID,
RoundKey = submitted.RoundKey,
).ToList();
【问题讨论】:
你能告诉我们你到底卡在哪里了吗?任何错误消息。? 【参考方案1】:使用像下面这样的单个 where 子句,
submittedDatabaseResponseList = (from submitted in _admissionsContext.ApplicationSubmittedSlate
join started in _admissionsContext.ApplicationStartedSlate on new submitted.SlateID, submitted.RoundKey equals new started.SlateID, started.RoundKey
where submitted.IsSuccess == false
&& started.SalesforceOpportunityID != null
&& submitted.FailedAttempts < 5
select new ApplicationSubmittedSlate
SalesforceOpportunityID = submitted.SalesforceOpportunityID,
SlateID = submitted.SlateID,
GPID = submitted.GPID,
RoundKey = submitted.RoundKey
).ToList();
【讨论】:
这有什么不同? @AluanHaddad 问题被问到,是否正确?无论如何,这是错误的方式吗?如果你有一个有意义的不同方法,请在这里。 是的,只需使用单个where
和 &&
重写查询,而不是重复的 where
子句。两种形式都有效。问题本身并不足以回答它以上是关于这是在 .netCore 项目中使用 LINQ 查询连接两个表的正确方法吗?的主要内容,如果未能解决你的问题,请参考以下文章