【发布时间】:2021-04-23 02:55:08
【问题描述】:
我有 2 个模型:
public class User
{
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Email { get; set; }
[Required]
[MaxLength(100)]
public string Password { get; set; }
}
和
public class Questionnaire
{
public int Id { get; set; }
[Required]
[MaxLength(500)]
public string Title { get; set; }
public User User { get; set; }
}
我想用这个查询来检索某个用户的所有问卷:
List<Questionnaire> questionnaires = this._dbContext.Questionnaires.Where(a => a.User.Id == 1).ToList();
它可以工作,但是实体框架会产生这个 sql 查询:
SELECT `q`.`Id`, `q`.`Title`, `q`.`UserId`
FROM `Questionnaires` AS `q`
LEFT JOIN `Users` AS `u` ON `q`.`UserId` = `u`.`Id`
WHERE `u`.`Id` = 1;
在我看来,左连接是不必要的。请问有什么解决方法可以避免这种左连接吗?提前谢谢你。
【问题讨论】:
-
EF 核心版本?或 EF 6
-
Microsoft.EntityFrameworkCore 5.0.2
-
请适当标记
标签: c# .net-core entity-framework-core pomelo-entityframeworkcore-mysql ef-core-5.0