文章目录
1、延迟加载介绍
延迟加载又叫惰性加载(Lazy Loading):即在需要或者使用的时候加载数据。
此功能是在EF Core 2.1中引入的。
2、使用延迟加载
2.1 使用 Microsoft.EntityFrameworkCore.Proxies
直接重写OnConfiguring方法配置UseLazyLoadingProxies()
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseLazyLoadingProxies()
.UseSqlServer(myConnectionString);
或者在Configing方法中添加
services.AddDbContext<UserContext>(
b => b.UseLazyLoadingProxies()
.UseSqlServer(connectionString));
2.2使用ILazyLoader注入到构造中
- 定义实体,并构造注入ILazyLoader
public class Blog
{
private ICollection<Post> _posts;
public Blog()
{
}
private Blog(ILazyLoader lazyLoader)
{
LazyLoader = lazyLoader;
}
private ILazyLoader LazyLoader {
get; set; }
public int Id {
get;