[英]EF Core Navigation Property Cycle
考虑以下
楷模:
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);
所有这一切都有效,然后问题出在我抓取的博客中 ,其中包含一个帖子 ,其中包含一个博客 ,该博客包含一个帖子列表,每个帖子列表都包含博客 ,依此类推。
如何将其限制为特定的嵌套级别? 我检查了文档 ,但找不到解决方案。
我认为您根本不能限制它。 但我也不认为这会引起任何问题。
EntityFramework通过将navigation properties
功能替换为对数据库的实际查询来处理其navigation properties
功能。 这种方法称为LazyLoading
。
这意味着,每次您访问该属性时,它都只会调用数据库并为您带来数据,并且可以根据您的请求永久执行此操作。
我希望能解释吗?
在这里可以找到进一步的解释。
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.