Fluent NHibernate mapping megoldások
Fluent NHibernate mapping megoldások
A Fluent NHibernate -el lehetőség van automatikus és kézi mapping -re. A mapping segítségével lehet az C# osztály és az adatbázis tábla közötti kapcsolatot megteremteni. Az automatikus feltérképezés előnye, hogy az egyszerűbb adatbázis struktúrákat gond nélkül tudja a rendszer kezelni, nem kell a programozónak felépíteni kézzel az egy – egy, egy – több, több – több kapcsolatokat. Hátránya, hogyha a táblák közötti kapcsolat bonyolult (többszörös foreign key, dictionary használata), akkor nem lesz pontos és ront!
A kézi feltérképezés esetén a programozó definiálja a táblák kapcsolatait, a C# nyelv segítségével.
A kézi térképezés beállításához a következőt kell tenni:
private AutoPersistenceModel CreateMappings()
{
AutoPersistenceModel am = new AutoPersistenceModel();
am.AddMappingsFromAssembly(System.Reflection.Assembly.GetAssembly(typeof(OnFlow.Model.Mappings.UserMapping)));
return am;
}
Ez az eljárás megkeresi azt a betöltött DLL -t, amiben a UserMapping osztály van, és ezt a DLL -t felhasználva képezi le kapcsolatokat.
Ha rá akarjuk bízni a Fluent NHibernate -re, akkor a következőket kell beírni:
private AutoPersistenceModel CreateMappings()
{
return AutoPersistenceModel.MapEntitiesFromAssemblyOf()
.Where(t => t.Namespace == “OnFlow.Model”);
}
Azaz itt azt mondtuk, hogy az OnFlow.Model alatti osztályokat próbálja meg saját maga a megadott kapcsolaton keresztül feltérképezni.