【发布时间】:2020-06-06 15:45:58
【问题描述】:
在我的 API 项目中,我有
public class Team
{
[Key]
public long Id { set; get; }
[Required]
public TeamSettings TeamSettings { get; set; }
}
public class TeamSettings
{
[Key]
[Required]
[Column("TeamSettingsId")]
public long Id { set; get; }
[Required]
[ForeignKey("TeamId")]
public long TeamId { get; set; }
[Required]
public Team Team { set; get; }
}
当我使用时
var team = await TeamRepo.GetAsync(t => t.Id == teamId, includes);
我可以在我的 SQL Server Profiler 上看到左连接而不是内连接。
我尝试删除注释并像这样流利:
modelBuilder.Entity<Team>()
.HasOne(t => t.TeamSettings)
.WithOne(ts => ts.Team)
.HasForeignKey<TeamSettings>(ts => ts.TeamId);
但是,我得到的只是一个左连接。
既然 TeamSettings 总是为任何团队创建并且不可为空,那么它不应该使用内部联接吗?
【问题讨论】:
标签: c# sql-server asp.net-core .net-core entity-framework-core