|
For noen dager siden flyttet jeg et gammelt prosjekt fra asp.net til Linux, som er basert på asp.net 4.0 + Nhibernate + FluentNhibernate, og støtte på et sjeldent problem i migreringsprosessen, klatret opp mange artikler, inkludert kinesisk, engelsk, og fant til slutt svaret på en japansk nettside (via Google Translate), noe som kan beskrives som ganske smertefullt, og jeg har registrert det For det første er miljøet som skal migreres til centos6.5 + MONO + Jexus Dette skjedde under Nhibernate + mono, men det skjedde ikke alltid, og noen av prosjektene jeg migrerte til brukte Nhibernate, så dette problemet oppsto ikke Initial: Følgende feil ble funnet i migrasjonen Så, ærlig talt, gå til web.config for å endre konfigurasjonen Etter å ha funnet modifikasjonen, er det fortsatt et stort problem, litt opprørt, nøye sporet, og fant ut at det er en feil når prompten under er Nhibernate OpenSession, det ser ut til at problemet ligger her
På dette tidspunktet prøvde jeg mange metoder, inkludert å skrive om noen nhibernate calling-metoder, søke gjennom mange artikler, og aldri finne en løsning, før jeg endelig fant en forklaring fra et hjørne, og årsaken til feilen ble kastet og forklart, men oversettelsen var for slitsom...
Årsaken til feilen var:
NHibernate.AdoNet.SqlClientSqlCommandSet
Med testene ovenfor finner jeg ikke SqlCommandSet....
Det ser ut til å skyldes plattformen
Nåværende løsning
nhibernate:
disposisjon
<property name="adonet.batch_size">0</property>
FluentNhibernate:
Altså, legg til. AdoNetBatchSize(0)
Så langt er problemet løst, og det ovennevnte er for protokollen, og jeg håper å kunne hjelpe folk som møter samme problem med å unngå noen omveier!
|