Wir haben vor kurzem unser Automapped FNH / NH Projekt auf NH 3.2 aktualisiert und stoßen dabei auf eine Menge Probleme.
Wir haben viele Eigenschaften in unserem Objektmodell, die nur einen "Getter" haben, z.B.
public virtual float Polydispersity
{
get { return MeasurementRun.PolyDispersity; }
}
Dies verwendet, um gut zu funktionieren, aber jetzt erhalten wir "Could not find a setter for property" Fehler.
Dies war schwer zu finden, da aus irgendeinem Grund das Automapping die DB-Tabellen nicht erstellen konnte, was zu "no persister"-Fehlern beim Speichern in der DB führte - siehe este für Einzelheiten.
Liegt das daran, dass LinFu jetzt in NH integriert ist? Ich weiß, dass private Setter nicht mehr funktionieren, und dies scheint ein ähnliches Problem zu sein.
Wir haben früher Castle verwendet, und ich finde es wirklich gut, dass NH jetzt nicht mehr all diese anderen DLLs benötigt, aber nicht, wenn es einen großen Teil unseres Objektmodells zerstört.
Gibt es Vorschläge, wie man das umgehen kann?
Stack Trace
FluentNHibernate.Cfg.FluentConfigurationException: Eine ungültige oder unvollständige Konfiguration wurde bei der Erstellung einer SessionFactory verwendet. Prüfen Sie die Sammlung PotentialReasons und InnerException für weitere Details.
---> NHibernate.PropertyNotFoundException: Konnte keinen Setter finden für die Eigenschaft 'Polydispersity' in der Klasse 'BI_OverlordDlsAppCore.OfeDlsMeasurement' unter NHibernate.Properties.BasicPropertyAccessor.GetSetter(Type type, String propertyName) at NHibernate.Mapping.Property.GetSetter(Type [ ] NHibernate.Tuple.Entity.PocoEntityTuplizer.BuildPropertySetter(Eigenschaft mappedProperty, PersistentClass mappedEntity) at NHibernate.Tuple.Entity.AbstractEntityTuplizer..ctor(EntityMetamodel entityMetamodel, PersistentClass mappingInfo) bei NHibernate.Tuple.Entity.PocoEntityTuplizer..ctor(EntityMetamodel entityMetamodel, PersistentClass mappedEntity) bei NHibernate.Tuple.Entity.EntityEntityModeToTuplizerMapping..ctor(PersistentClass [ ] NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass persistentClass, ISessionFactoryImplementor sessionFactory) bei NHibernate.Persister.Entity.AbstractEntityPersister..ctor(PersistentClass persistentClass, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory) bei NHibernate.Persister.Entity.JoinedSubclassEntityPersister..ctor(PersistentClass persistentClass, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory, IMapping mapping) bei NHibernate.Persister.PersisterFactory.CreateClassPersister(PersistentClass model, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory, IMapping cfg) bei NHibernate.Impl.SessionFactoryImpl..ctor(Konfiguration cfg, IMapping mapping, Settings settings, EventListeners listeners) bei NHibernate.Cfg.Configuration.BuildSessionFactory() bei FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() --- Ende der inneren Ausnahme-Stapelverfolgung --- bei FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() bei BI_OverlordPackageCore.OfeDatabase.Crea C:\Bicw_Dev\Bic.Net\Private Projekte \NHibernate\FNH 1.3 Kartierung Fehler \OfeDatabase.cs :Zeile 192 bei BI_OverlordPackageCore.OfeDatabase.GetM C:\Bicw_Dev\Bic.Net\Private Projekte \NHibernate\FNH 1.3 Kartierung Fehler \OfeDatabase.cs :l BI_OverlordPackageCore.OfeDatabase.Initialize(Assembly[] assemblies) in C:\Bicw_Dev\Bic.Net\Private Projekte \NHibernate\FNH 1.3 Kartierung Fehler \OfeDatabase.cs :l FNH_1._3_Mapping_Bug.Form1.b in C:\Bicw_Dev\Bic.Net\Private Projekte \NHibernate\FNH 1.3 Kartierung Fehler \Form1.cs :Zeile 23 bei System.Windows.Forms.Control.OnClick(E System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bei System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& [ ] msg, IntPtr wparam, IntPtr lparam)