In EF6 we had such option:
context.Set<TEntity>().Attach(entity);
context.Entry(entity).Collection("NavigationProperty").Load();
Since EF Core "goes 100% strictly typed" they have removed Collection function. But what should be used instead?
Added: I mean how to load includes/"navigation collection properties" for ATTACHED entity?
You have 3 methods:
1. Eager loading
e.g.
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ToList();
2. Explicit loading
e.g.
var blog = context.Blogs
.Single(b => b.BlogId == 1);
context.Posts
.Where(p => p.BlogId == blog.BlogId)
.Load();
3. Lazy loading (as of EF Core 2.1)
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseLazyLoadingProxies()
.UseSqlServer(myConnectionString);
You can read more about it here : Loading Related Data
Update :
You can use TrackGraph API for that use case.Here is the link : graph behavior of Add/Attach
Another link : DbSet.Add/Attach and graph behavior
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With