Ich benutze NHibernate zum ersten Mal, wollte aber, wenn möglich, Konfigurationsdateien vermeiden, indem ich NHibernate Fluent verwende. Ich habe ein Projekt-Setup bekam und ich versuche einfach eine Adresse Objekt abfragen, um die folgendenNHibernate w/Fluent - Kein Persister für: [Klasse]
[TestMethod]
public void TestMethod1()
{
var cfg = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.Is("[ConnectionStringHere")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<RedSand.Models.Data.Mapping.AddressMapping>());
var sessionFactory = cfg.BuildSessionFactory();
var session = sessionFactory.OpenSession();
session.Get<Address>(new Guid("A8B9BA39-425D-4AE6-A72E-00216ABC87C4"));
}
Verwendung jedoch es auf dem Get<T>()
Verfahren Sprengung mit einem Fehler über es beschweren kein persister zu sein. Meine Adressklassen sind unten.
public class Address
{
public Guid AddressId { get; set; }
public string AddressType { get; set; }
public string StreetAddress { get; set; }
public Guid CityId { get; set; }
public string PostalCode { get; set; }
public bool DefaultAddress { get; set; }
public bool TermAddress { get; set; }
public string SuiteNumber { get; set; }
public float Latitude { get; set; }
public float Longitude { get; set; }
public int Accuracy { get; set; }
}
public class AddressMapping : ClassMap<Address>
{
public AddressMapping()
{
Table("tblAddress");
Not.LazyLoad();
Id(a => a.AddressId).Column("AddressID").GeneratedBy.Guid();
Map(a => a.StreetAddress).Column("Address").Length(100);
Map(a => a.CityId).Column("CityID");
Map(a => a.PostalCode).Length(50);
Map(a => a.DefaultAddress);
Map(a => a.TermAddress).Default("0");
Map(a => a.SuiteNumber).Column("SuiteNo").Length(50);
Map(a => a.Latitude);
Map(a => a.Longitude);
Map(a => a.Accuracy);
}
}
Ich verwende eine vorhandene Datenbank, also versuchen Sie, die funky Tabellenstruktur/Benennung zu ignorieren.
Fehle ich hier etwas? Kann irgendjemand von euch etwas sehen, was erklären würde, warum er sich über einen Nein-Persister beschwert?
Ich habe versucht, dies zu replizieren, und kann es nicht zum Scheitern bringen. Sind Sie sicher, dass Sie nicht zwei separate "Address" -Klassen definiert haben? – mxmissile
Vielleicht sollte ich das Gleiche tun wie du und eine neue Anwendung erstellen und versuchen, meinen eigenen Fehler zu replizieren, vielleicht wurde in meinem aktuellen Projekt etwas mit Referenzen oder etwas vermischt? Würde das den Fehler verursachen? –