use*_*980 4 entity-framework ef-fluent-api
我是Fluent API的新手。在我的情况下,一个Student可以合而为一Grade,一个Grade可以有多个Students。然后,这两个语句完成相同的操作:
modelBuilder
.Entity<Student>()
.HasRequired<Grade>(s => s.Grade)
.WithMany(s => s.Students);
Run Code Online (Sandbox Code Playgroud)
和:
modelBuilder
.Entity<Grade>()
.HasMany<Student>(s => s.Students)
.WithRequired(s => s.Grade);
Run Code Online (Sandbox Code Playgroud)
我的问题是-我应该如何选择一个陈述而不是另一个?还是我需要两个陈述?
对于像您这样的双向关系(即两端都具有导航属性),这并不重要,您可以使用一个或另一个(您也可以使用两者,但是不建议这样做,因为它是多余的,并且可能导致不同步两者之间)。
当您具有单向关系时,这真的很重要,因为只有With方法才具有无参数重载。
假设您没有Grade.Students财产。然后,您只能使用:
modelBuilder.Entity<Student>()
.HasRequired(s => s.Grade)
.WithMany();
Run Code Online (Sandbox Code Playgroud)
如果您没有Student.Grade财产,则只能使用:
modelBuilder.Entity<Grade>()
.HasMany(s => s.Students)
.WithRequired();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
728 次 |
| 最近记录: |