[英]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.