|
För några dagar sedan flyttade jag ett gammalt projekt från asp.net till Linux, som bygger på asp.net 4.0 + Nhibernate + FluentNhibernate, och stötte på ett sällsynt problem under migreringen, klättrade i många artiklar, inklusive kinesiska, engelska, och hittade slutligen svaret på en japansk webbplats (via Google Translate), vilket kan beskrivas som ganska smärtsamt, och jag har dokumenterat det För det första är miljön som ska migreras till centos6.5 + MONO + Jexus Detta hände under Nhibernate + mono, men det hände inte alltid, och några av projekten jag migrerade till använde Nhibernate, så det här problemet uppstod inte Initial: Följande fel hittades i migrationen Så, ärligt talat, gå till web.config för att ändra konfigurationen Efter att ha hittat modifieringen är det fortfarande ett sådant problem, lite upprörd, noggrant spårad, och upptäckt att det finns ett fel när prompten nedan är Nhibernate OpenSession, verkar problemet ligga här
Vid den här tiden försökte jag många metoder, inklusive att skriva om några nhibernate call-metoder, genomsöka många artiklar och aldrig hitta en lösning, tills jag till slut hittade en förklaring från ett hörn och orsaken till felet kastades och förklarades, men översättningen var för tröttsam...
Anledningen till felet var:
NHibernate.AdoNet.SqlClientSqlCommandSet
Med ovanstående tester kan jag inte hitta SqlCommandSet....
Det verkar bero på plattformen
Nuvarande lösning
nhibernate:
läggning
<egendomsnamn="adonet.batch_size">0</property>
FluentNhibernate:
Det vill säga, addera. AdoNetBatchSize(0)
Hittills är problemet löst, och ovanstående är för protokollet, och jag hoppas kunna hjälpa personer som stöter på samma problem att undvika vissa omvägar!
|