考虑以下
型号:
public class Blog
{
public Guid ID {get; set;}
public string Name {get; set;}
// more fields...
// Navigation Property
public IList<Post> Posts {get; set;}
}
public class Posts
{
public Guid ID {get; set;}
public Guid BlogID {get; set;}
public string Author {get; set;}
// more fields...
// Navigation Property
public Blog Blog {get; set;}
}
在 DbContext.OnModelCreating :
中// Primary Keys
modelBuilder.Entity<Blog>()
.HasKey(c => c.ID);
modelBuilder.Entity<Post>()
.HasKey(c => c.ID);
modelBuilder.Entity<Blog>()
.HasMany(c => c.Posts)
.WithOne(c => c.Blog)
.HasForeignKey(c => c.BlogID)
.HasPrincipalKey(c => c.ID);
modelBuilder.Entity<Post>()
.WithOne(c => c.Blog)
.HasMany(c => c.Posts)
.HasForeignKey(c => c.BlogID)
.HasPrincipalKey(c => c.ID);
一切正常,问题是我获取博客它包含帖子,其中包含博客,其中包含< strong>帖子,其中每个都包含博客 等等。
如何将此限制为特定的嵌套级别? 我检查了docs并找不到解决方案。
答案 0 :(得分:0)
我认为你根本不能限制它。但我也不认为这会导致任何问题。
EntityFramework通过将实际查询替换(覆盖)其功能与数据库进行交互来处理bolt
。这种方法称为navigation properties
。
这意味着,每次访问该属性时,它只是调用数据库并为您提供数据,并且可以在您请求时永久执行此操作。
我希望能解释一下吗?
可以找到进一步的解释here。
此致