Обновить объект, не затрагивая его свойство навигации - PullRequest
0 голосов
/ 14 июля 2020

дюйм. net core 3.1

если у i есть класс модели, внутри которого есть свойство навигации,

public class Department
{
   public int ID { get;set; }
   public string Name { get; set; }
   public List<Student> Students { get; set; }
}

public class Student
{
   public int ID { get; set;}
   public string Name { get; set;}
}

Согласно предыдущим моделям, в чем разница между .AsNoTracking() и с отслеживанием, связанным со свойством навигации

Например, , если я извлекаю объект отдела без отслеживания, будет ли он заполнять список студентов или нет, а то же самое для withTracking

и еще

, если я хочу обновить Департамент, не затрагивая список студентов внутри него, как мне этого добиться.

и последнее, потому что я прошел через документы , не понимая

, что EntityState.Detached означает

и разницу между DBSet.Attach() и DBSet.Update()

1 Ответ

0 голосов
/ 14 июля 2020

Здесь есть довольно хорошая статья, описывающая поведение отслеживания: https://docs.microsoft.com/en-us/ef/core/querying/tracking.

Что касается отсоединения / прикрепления, вы можете использовать следующее в качестве руководства. В этом примере будут даны некоторые комментарии по поводу его использования. https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.objectcontext.detach?view=netframework-4.8

https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.objectcontext.attach?view=netframework-4.8&viewFallbackFrom=netcore-3.1

Что касается обновления, не затрагивающего учащихся, что я обычно делаю, так это использую .Include(x=> x.Students) затем выполните обновление интересующего меня объекта сущности и сохраните эти изменения в контексте.

Наконец, есть книга fantasti c, которую вы также можете прочитать, под названием Entity Framework Core в действии. Я нашел это очень полезным, когда начал работать с EF.

Надеюсь, это поможет. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...