Подсубъект не обновляется, когда присваивается нулевое значение его ссылке - PullRequest
1 голос
/ 31 августа 2011

У меня есть сущность с именем: Приложение , и у нее есть поле ApplicationStatus , которое также является сущностью, значения ApplicationStatus имеют значение да или нет, и оно может обнуляться в приложении.

Поэтому, когда я выполняю:

Application application = MyEntities.Applications.First();
application.ApplicationStatus = null; 
MyEntities.SaveChanges(); 

ApplicationStatus не будет обновлять свое значение, , если Я не отладлю его и не выполню быстрый просмотр application.ApplicationStatus.

Однако

application.ApplicationStatusId = null;

отлично работает.

Мой вопрос, почему этот не работает:

application.ApplicationStatus = null;

Спасибо

РЕДАКТИРОВАТЬ следующий вопрос:

Поскольку ответ @LadislavMrnka решает поведение отладки и проблемы, связанные с отложенной загрузкой:

как мы можем интерпретировать эту ситуацию?

Application application = MyEntities.Applications.First();

application.ApplicationStatusId = null; //This updates value in db

ApplicationStatus applicationStatus = MyEntities.ApplicationStatuses.First(a => a.Name == "no");
app.ApplicationStatus = applicationStatus; //This updates value in db too

app.ApplicationStatus = null; // But this doesn't

1 Ответ

2 голосов
/ 31 августа 2011

Используйте это, и оно будет работать:

Application application = MyEntities.Applications.Include("ApplicationStatus").First();

Причина в том, что ваш ApplicationStatus никогда не загружался. Если вы выполните отладку и получите к ней доступ, ваш доступ к отладке вызовет отложенную загрузку и загрузит ее.

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