Search Results

Search found 1 results on 1 pages for 'thiagoalves'.

Page 1/1 | 1 

  • FluentNHibernate Overrides: UseOverridesFromAssemblyOf non-generic version

    - by ThiagoAlves
    Hi, I have a repository class that inherits from a generic implementation: public namespace RepositoryImplementation { public class PersonRepository : Web.Generics.GenericNHibernateRepository<Person> } The generic repository implementation uses Fluent NHibernate conventions. They're working fine. One of those conventions is that all properties are not nullable. Now I need to define that specific properties may be nullable outside the conventions. Fluent NHibernate has an interesting override mechanism: public namespace RepositoryImplementation { public class PersonMappingOverride : IAutoMappingOverride<Person> { public void Override(FluentNHibernate.Automapping.AutoMapping<Funcionario> mapping) { mapping.Map(x => x.PhoneNumber).Nullable(); } } } Now I need to register the override class into Fluent NHibernate. I have the following code in the Web.Generics.GenericNHibernateRepository generic class: AutoMap.AssemblyOf<Person>() .Where(type => type.Namespace == "Entities") .UseOverridesFromAssemblyOf<PersonMappingOverride>(); The problem is: UseOverridesFromAssemblyOf is a generic method, and I can't do something like that: .UseOverridesFromAssemblyOf<PersonMappingOverride>(); Because that would cause a circular reference. I don't want the generic repository to know the either repository or the mapping override class, because they vary from project to project. I see another solution: in the GenericNHibernateRepository class I can do this.GetType() and get the repository implementation type (e.g.: PersonRepository). However I can't call UseOverridesFromAssemblyOf() passing a type. Is there another way to configure overrides in FluentNHibernate? If not, how could I call UseOverridesFromAssemblyOf<T> without making the generic repository depend upon the repository implementation or the mapping override class? (Source: http://wiki.fluentnhibernate.org/Auto_mapping#Overrides)

    Read the article

1