|
Pirms dažām dienām es pārvietoju vecu asp.net projektu uz linux, kura pamatā ir asp.net 4.0 + Nhibernate + FluentNhibernate, un migrācijas procesā saskāros ar retu problēmu, uzkāpu daudzos rakstos, ieskaitot ķīniešu, angļu valodu, un beidzot atradu atbildi japāņu vietnē (ar Google tulkotāju), ko var raksturot kā diezgan sāpīgu, un es to esmu ierakstījis Pirmkārt, vide, uz kuru jāmigrē, ir centos6.5 + MONO + Jexus Tas notika zem Nhibernate + mono, bet tas ne vienmēr notika, un daži no projektiem, uz kuriem es migrēju, izmantoja Nhibernate, tāpēc šī problēma neradās Sākotnējais: Migrācijā tika atrasta šāda kļūda Tātad, godīgi dodieties uz web.config, lai mainītu konfigurāciju Pēc modifikācijas atrašanas tā joprojām ir tāda problēma, nedaudz satraukta, rūpīgi izsekota un konstatēta, ka ir kļūda, kad zemāk redzamā uzvedne ir Nhibernate OpenSession, šķiet, ka problēma ir šeit
Šajā laikā es izmēģināju daudzas metodes, tostarp pārrakstīju dažas nhibernāta zvanīšanas metodes, pārmeklēju daudz rakstu un nekad neatradu risinājumu, līdz beidzot atradu skaidrojumu no stūra, un kļūdas iemesls tika izmests un izskaidrots, bet tulkojums bija pārāk nogurdinošs...
Kļūdas iemesls bija:
NHibernate.AdoNet.SqlClientSqlCommandSet
Ar iepriekš minētajiem testiem es nevaru atrast SqlCommandSet....
Šķiet, ka tas ir saistīts ar platformu
Pašreizējais risinājums
nhibernate:
Izvietojuma
<property name="adonet.batch_size">0</property>
FluentNhibernate:
Tas ir, pievienojiet. AdoNetBatchSize(0)
Līdz šim problēma ir atrisināta, un iepriekš minētais ir ierakstam, un es ceru palīdzēt cilvēkiem, kuri saskaras ar to pašu problēmu, izvairīties no dažiem apvedceļiem!
|