Reputation: 7640
I have an entity named: Application and it has field ApplicationStatus which is entity as well, ApplicationStatus values are yes or no and it's nullable in Application.
So when I execute:
Application application = MyEntities.Applications.First();
application.ApplicationStatus = null;
MyEntities.SaveChanges();
ApplicationStatus won't update its value, unless I debug it and do quick watch application.ApplicationStatus.
However
application.ApplicationStatusId = null;
works fine.
My question, why this one doesn't work:
application.ApplicationStatus = null;
Thanks
EDIT further question:
As @LadislavMrnka answer solves debug behaviour and and the issue related lazy loading:
how can we interpret these situation?
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
Upvotes: 1
Views: 327
Reputation: 364259
Use this and it will work:
Application application = MyEntities.Applications.Include("ApplicationStatus").First();
The reason is that your ApplicationStatus
was never loaded. If you do debug and access it your debugging access will trigger lazy loading and loads it.
Upvotes: 2