|
Vor ein paar Tagen habe ich ein altes Projekt von asp.net auf Linux umgestellt, das auf asp.net 4.0 + Nhibernate + FluentNhibernate basiert, bin auf ein seltenes Problem im Migrationsprozess gestoßen, habe viele Artikel, darunter Chinesisch, Englisch, durchgelesen und schließlich die Antwort auf einer japanischen Website (über Google Translate) gefunden, was als ziemlich schmerzhaft beschrieben werden kann, und ich habe es festgehalten Erstens ist die zu migrierende Umgebung centos6.5 + MONO + Jexus Das passierte unter Nhibernate + Mono, aber nicht immer, und einige der Projekte, zu denen ich gewechselt bin, nutzten Nhibernate, sodass dieses Problem nicht aufgetreten ist Initial: Der folgende Fehler wurde bei der Migration festgestellt Geh also ehrlich gesagt zu web.config, um die Konfiguration zu ändern Nachdem ich die Änderung gefunden habe, ist es immer noch ein großes Problem, etwas beunruhigt, sorgfältig verfolgt, und festgestellt, dass es einen Fehler gibt, wenn die untenstehende Eingabeaufforderung Nhibernate OpenSession lautet, scheint das Problem hier zu liegen.
Zu dieser Zeit habe ich viele Methoden ausprobiert, darunter das Überarbeiten einiger Nhibernat-Aufrufmethoden, das Durchsuchen vieler Artikel und nie eine Lösung gefunden, bis ich schließlich eine Erklärung aus einer Ecke fand und der Grund für den Fehler aufgeworfen und erklärt wurde, aber die Übersetzung war zu anstrengend...
Der Grund für den Fehler war:
NHibernate.AdoNet.SqlClientSqlCommandSet
Mit den oben genannten Tests finde ich SqlCommandSet nicht....
Es scheint an der Plattform zu liegen
Aktuelle Lösung
nhibernate:
Veranlagung
<property name="adonet.batch_size">0</property>
FluentNhibernate:
Das heißt, addieren. AdoNetBatchSize(0)
Bisher ist das Problem gelöst, und das oben Genannte dient der Vollständigkeit, und ich hoffe, Menschen, die auf dasselbe Problem stoßen, helfen zu können, um einige Umwege zu vermeiden!
|