2012. február 2., csütörtök

EF - String - MaxLength

Majd egy napos nyomozás, a szituáció a következő:

Egy entitás egy mezőjét be update-eled, és "nem menti el". Minden mást ugyanabban a tranzakcióban megcsinál.
Már próbálkoztunk mindennel, találgattuk hogy lehet hogy a context-ből valahogy kikerült, megpróbáltuk közvetlenül az update előtt újra felolvasni és úgy módosítani.
Gyanús lett, hogy sehogy nem történik meg az update, pedig a commit is lemegy, nincsen hiba.

Amiért történt:
Oracle-ben a kapott leírás szerint vettük fel a mezőket, és amivel probléma volt, hát mi felvettük 1 hosszú VARCHAR2 típussal, az EF azt szépen be is tette a model-be, és beállította hogy a MaxLength = 1.
Igenám, de amikor a mezőt update-elni akartam 'E'-ről 'EA'-ra, nem szólt, hogy hello, nem lesz jó, mert ez hosszabb, hanem szépen levágta róla az 'A' betűt, vagyis beupdate-elte 'E'-re, ami előtte volt.

Szóval a lényeg, hogy egy exception-t azért dobhatott volna...
Tanulság: nem mindig jó a kapott interface tábla leírás :)

Nincsenek megjegyzések:

Megjegyzés küldése