Rom*_*kij 3 entity-framework entity-framework-core
在EF6中我们有这样的选择:
context.Set<TEntity>().Attach(entity);
context.Entry(entity).Collection("NavigationProperty").Load();
Run Code Online (Sandbox Code Playgroud)
由于EF Core"100%严格打字",他们已经删除了Collection功能.但应该用什么呢?
补充:我的意思是如何为ATTACHED实体加载包含/"导航集合属性"?
你有2种方法.
1.急切加载
例如
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ToList();
Run Code Online (Sandbox Code Playgroud)
2.明确加载
例如
var blog = context.Blogs
.Single(b => b.BlogId == 1);
context.Posts
.Where(p => p.BlogId == blog.BlogId)
.Load();
Run Code Online (Sandbox Code Playgroud)
更新:
您可以将TrackGraph API用于该用例.这是链接:添加/附加的图形行为
另一个链接:DbSet.Add/Attach和图形行为
显式加载已添加到Entity Framework Core v1.1中。请参阅Microsoft Docs
从文档:
using (var context = new BloggingContext())
{
var blog = context.Blogs
.Single(b => b.BlogId == 1);
context.Entry(blog)
.Collection(b => b.Posts)
.Load();
context.Entry(blog)
.Reference(b => b.Owner)
.Load();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5917 次 |
| 最近记录: |