|
Een paar dagen geleden heb ik een oud project van asp.net naar Linux gezet, gebaseerd op asp.net 4.0 + Nhibernate + FluentNhibernate, en ik kwam een zeldzaam probleem tegen tijdens de migratie, klom ik veel artikelen op, waaronder Chinees, Engels, en vond uiteindelijk het antwoord op een Japanse website (via Google Translate), wat als behoorlijk pijnlijk kan worden omschreven, en ik heb het genoteerd Ten eerste is de omgeving waar naartoe gemigreerd moet worden centos6.5 + MONO + Jexus Dit gebeurde onder Nhibernate + mono, maar het gebeurde niet altijd, en sommige projecten waar ik naartoe overstapte gebruikten Nhibernate, dus dit probleem deed zich niet voor Initiaal: De volgende fout werd gevonden in de migratie Dus, ga eerlijk gezegd naar web.config om de configuratie aan te passen Na het vinden van de wijziging is het nog steeds zo'n probleem, een beetje van streek, zorgvuldig gevolgd, en er is een foutmelding wanneer de onderstaande prompt Nhibernate OpenSession is, het lijkt erop dat het probleem hier ligt
In die tijd probeerde ik veel methoden, waaronder het herschrijven van enkele nhibernate calling-methoden, het doorzoeken van veel artikelen, en nooit een oplossing vinden, totdat ik uiteindelijk een uitleg uit een hoek vond en de reden voor de fout werd uitgelegd, maar de vertaling was te vermoeiend...
De reden waarom de fout optrad was:
NHibernate.AdoNet.SqlClientSqlCommandSet
Met bovenstaande tests kan ik SqlCommandSet niet vinden....
Het lijkt te komen door het platform
Huidige oplossing
nhibernate:
aanleg
<property name="adonet.batch_size">0</property>
FluentNhibernate:
Dat wil zeggen, optellen. AdoNetBatchSize(0)
Tot nu toe is het probleem opgelost, en het bovenstaande is voor de duidelijkheid, en ik hoop mensen die hetzelfde probleem tegenkomen te helpen om omwegen te vermijden!
|