Как подключить в ASP.NET Core Lazy loading?
Всем привет. при работе с ASP.NET Core столкнулся с такой проблемой. Есть две модели
public class Room: BaseEntity
{
[Display(Name = "Наименование")]
[JsonPropertyName("name")]
public string Name { get; set; }
[Display(Name = "Комментарий")]
[JsonPropertyName("comment")]
public string Comment { get; set; }
[ForeignKey("RoomType")]
[Display(Name = "Тип помещения")]
public int IdRoomType { get; set; }
[Display(Name = "Тип помещения")]
public virtual RoomType RoomType { get; set; }
}
public class RoomType: BaseEntity
{
[Display(Name = "Наименование")]
[JsonPropertyName("name")]
public string Name { get; set; }
}
Использую EF. И при получении экземпляра Room поле IdRoomType заполнено, а само RoomType равно Null. То есть lazy loading не работает. В интернете нашёл, что в ASP.NET lazy loading подключается так: в методе ConfigureServices файлы Startup.cs нужно написать следующее:
services.AddDbContext<DataModel>(options =>
options
.UseUseLazyLoadingProxies()
.UseSqlServer(
Configuration.GetConnectionString("ALRConnection"), option => option.UseRelationalNulls())
);
Но студия не видит метод UseUseLazyLoadingProxies. Как можно решить эту проблему? и на сколько правильно использовать lazy loading?
Ответы (1 шт):
Автор решения: Exploding Kitten
→ Ссылка
UseLazyLoadingProxies - этот метод является частью отдельного пакета: Microsoft.EntityFrameworkCore.Proxies, установите его и он появится.