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.

Related Posts