EntityFramework Jak zmienić stan obiektów.

0

Normalnie stanu obiektów nie można zmienić, bo atrybut someEntityObject.EntityState jest read only.

Można go zmienić tak:
orderContext.ObjectStateManager.ChangeObjectState(shippingOrder, System.Data.EntityState.Modified);

Ale co kiedy chcemy zmienić stan obiektu, którego nie mamy jeszcze w bazie/kontekście, bo utworzyliśmy go?

Swoją drogę trochę dziwne że utworzyłem nowy obiekt, zmieniłem w nim parę wartości i jego stan się zmienia w programie:
Detachet, Added, Unchanged, Modified

A oprócz stworzenia tego obiektu i zmienienia kilku jego wartości, nic innego nie robię, nawet nie zapisuję kontekstu.

0

Inny sposób na zmianę stanu obiektu:

context.Entry<ShippingOrder>(shippingorder).State = EntityState.Modified;

Co ci przeszkadza, że stan obiektów jest śledzony? Jeżeli nie dodasz ich do DbSetu i nie zatwierdzisz wprowadzonych zmian, to nie zostaną dodane.
Możesz też wyłączyć automatyczne śledzenie:

context.Configuration.AutoDetectChangesEnabled = false;

1 użytkowników online, w tym zalogowanych: 0, gości: 1