我需要使用Fluent API和EntityFramework Core声明一个0..1到多个关系。现在我有1对多的关系,我无法弄清楚如何将其改为0..1到很多。
modelBuilder.Entity<Item>()
.HasOne(c => c.Constraint)
.WithMany(p => p.Constraint)
.HasForeignKey(p => p.Growid)
.HasPrincipalKey(b => b.Growid);
非常感谢任何帮助。
答案 0 :(得分:1)
来自docs:
如果您的实体类中有外键属性,则根据外键属性是必需还是可选来确定关系的必要性
如果属性包含null,则该属性被视为可选属性。如果null不是要分配给属性的有效值,则认为它是必需属性。
因此,为了将关系的性质从required(1到many)更改为0..1到many,您需要使外键可以为空。您可以在域实体中执行此操作:
DB::table('Brands')
->join('brand_tag','brands.id','=','brand_tag.brand_id')
->join('tags','brand_tag.tag_id','=','tags.id')
->whereIn('tags.id',$allTags)
->get();