Найти по идентификатору и включает вместе структуру сущности n [дубликат]

Следуя принципу ненавязчивого , не обязательно, чтобы «_myPartial» вводил контент непосредственно в секцию скриптов. Вы можете добавить эти сценарии частичного просмотра в отдельный файл .js и ссылаться на них в раздел @scripts из родительского представления.

1
задан Shaul Behr 11 September 2016 в 09:53
поделиться

2 ответа

Это не удалось с EF6, я не думаю, что EF Core изменит это. Это связано с тем, что основная цель метода Find - принести уже загруженный объект из локального кеша или загрузить его из базы данных, если ее там нет. Таким образом, интенсивная загрузка (Include) может использоваться только в более позднем случае, тогда как в первом она должна будет выполнять явную загрузку. Сочетание обоих в одном методе может быть технически возможным, но сложно.

Я думаю, вы должны взять маршрут FirstOrDefault (или SingleOrDefault) в сочетании с активной загрузкой. Вы можете увидеть примерную реализацию для EF6 в методе GetById репозитория, используя активную загрузку . Его можно настроить для EF Core, как с помощью dbContext.Model.FindEntityType(typeof(T)).FindPrimaryKey().Properties, чтобы найти свойства PK и построить предикат. Кроме того, поскольку EF Core содержит бит более сложный (требуются цепочки Include / ThenInclude), вы можете найти интересный этот поток Можно ли создать альтернативу String based Include в ядре Entity Framework? .

2
ответ дан Community 18 August 2018 в 11:17
поделиться

Используйте «Найти» в сочетании с Load для явной загрузки связанных объектов. Ниже примера MSDN:

using (var context = new BloggingContext()) 
{ 
  var post = context.Posts.Find(2); 

  // Load the blog related to a given post 
  context.Entry(post).Reference(p => p.Blog).Load(); 

  // Load the blog related to a given post using a string  
  context.Entry(post).Reference("Blog").Load(); 

  var blog = context.Blogs.Find(1); 

  // Load the posts related to a given blog 
  context.Entry(blog).Collection(p => p.Posts).Load(); 

  // Load the posts related to a given blog  
  // using a string to specify the relationship 
  context.Entry(blog).Collection("Posts").Load(); 
}

здесь ссылка MSDN

4
ответ дан asfandahmed1 18 August 2018 в 11:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: