[英]Entity framework Include command - Left or inner join?
假设在您的课程中,City或CityID上有[Required]
约束。 并且假设没有(有效)城市的人员记录。 满足[Required]
的唯一方法是执行内连接。
但是只要你的Db和模型中的约束匹配(即CityID INT NOT NULL
),使用何种类型的Join就不重要了。 这应该是正常情况。
没有约束,你当然会期望一个左连接。
我知道这是一个老问题,但如果有人像我一样使用EF Code First登陆这里,我的问题在于流畅的映射:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Parent>()
.HasOptional(a => a.Child) /* LEFT OUTER JOIN */
.WithMany()
.HasForeignKey(a => a.ChildId);
}
被翻译为LEFT OUTER JOIN而
modelBuilder.Entity<Parent>()
.HasRequired(a => a.Child) /* INNER JOIN */
.WithMany()
.HasForeignKey(a => a.ChildId);
被翻译为INNER JOIN 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.