Frage

Ich habe ein Problem mit fließendem Nhibernate AutopersistencemodelGenerator. Es möchte keine benutzerdefinierten Karten aufnehmen.

Mit Sharp Architecture 2.0, Fluent Nhibernate 1.2 und Nhibernate 3.1.

Meine aktuell relevante Konfiguration lautet wie folgt:

    public AutoPersistenceModel Generate()
    {
        // This mappings group works with the exception of custom maps!!
        var mappings = AutoMap.AssemblyOf<SecurableEntity>(new AutomappingConfiguration());
        mappings.Conventions.Setup(GetConventions());
        mappings.IgnoreBase<Entity>();
        mappings.IgnoreBase<SecurableEntity>();
        mappings.IgnoreBase(typeof(EntityWithTypedId<>));
        mappings.UseOverridesFromAssemblyOf<AutoPersistenceModelGenerator>();

        //mappings.UseOverridesFromAssemblyOf<UserMap>(); // Should call Override method of UserMap, but doesn't appear to...
        mappings.Override<User>(new UserMap().Override()); // This hack fixes the issue with calling the Override method of UserMap.
        mappings.UseOverridesFromAssemblyOf<UserMap>();

        return mappings;
    }

class UserMap : IAutoMappingOverride<User>
{
    public void Override(AutoMapping<User> mapping)
    {
        //mapping => mapping.Table("Users");
        mapping.Table("Users");
    }

    public Action<AutoMapping<User>> Override()
    {
        return map =>
            {
                map.Table("Users");
            };
    }
}

Ich habe versucht, verschiedene Änderungen an der Konfiguration vorzunehmen und Internetartikel mit fließendem Nhibernate ohne Erfolg zu übergießen. Ich habe eine funktionierende Version mit Sharp Arch 1.x und früheren Versionen von Nhibernate und Fluent. Ich gehe davon aus, dass es eine Veränderung der Syntax gegeben hat, die mir fehlt. Jede Hilfe wäre sehr geschätzt.

Vielen Dank! John

War es hilfreich?

Lösung

Fließender Nhibernate -Verwendung Assembly.GetExportedTypes() Methode um alle Überschreibungen von der angegebenen Baugruppe zu erhalten. Wie die Dokumentation dieser Methode besagt, wird die Öffentlichkeit Typen, die in dieser Baugruppe definiert sind, die sind draußen sichtbar die Versammlung. Ihre Überschreibung ist implizit intern. Einfach hinzufügen public Vor class UserMap Und es wird funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top