Používame MySQL .NET Connector 6.7.4 na prístup k databáze MySQL pomocou Entity Framework 5.0 v .NET. Po inovácii na verziu 6.7.4 sme začali narážať na problémy s stĺpcom časovej pečiatky, kde je povolené NULL. Hodnoty môžeme uložiť bez problémov (to znamená, že stĺpec sa správne aktualizuje v db), ale vždy, keď načítavame entitu zodpovedajúcu riadku v databáze, vlastnosť zodpovedajúca tomuto stĺpci vždy vráti hodnotu null. Snažili sme sa zmeniť presnosť stĺpca v edmx-súbore, ale to nezmenilo správanie vôbec.Ak niekto iný zažil tento problém? Existuje nejaké známe riešenie, okrem downgrading na staršiu verziu MySQL .NET Connector ?
odpovede:
1 pre odpoveď č. 1Pokúsili ste sa pridať "convert null datetime = true" do vášho pripojenia? Toto prevedie hodnoty 0000-00-00 na DateTime.MinValue.
vidieť http://dev.mysql.com/doc/refman/5.5/en/connector-net-connection-options.html a http://dev.mysql.com/doc/refman/5.0/en/connector-net-programming-datetime.html
Pre viac informácií
1 pre odpoveď č. 2
Čo sa stane, ak použijete funkciu IFNULL? Tj.
SELECT IFNULL(mytimestamp,"0001-01-01 00:00:00") FROM mytable
Tým by sa mal vrátiť stĺpec, ktorý nie je nulový a má vždy hodnotu. Vrátená hodnota by mala byť hodnota stĺpca mytimestamp alebo "0001-01-01 00:00:00" (vaša predvolená hodnota).