Jun
8

Fluent NHibernate mapping exception: Association references unmapped class

Postato in  
Technology

Ieri ho perso metà pomeriggio di lavoro per una mia non conoscenza del mapping delle Entity in Fluent NHibernate.

L’eccezione lanciata da NHibernate:

1
Association references unmapped class: YourClass

Il mapping delle mie Entity avviene tramite un metoto CreateSessionFactory:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
FluentNHibernate.Cfg.Fluently.Configure()
  .Database
    (
      FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008
        .ConnectionString(
          c => c.Server(DbConnectionValue.Server)
                    .Username(DbConnectionValue.User)
                    .Password(DbConnectionValue.Password)
                    .Database(DbConnectionValue.Database)
          )
        .ProxyFactoryFactory("
NHibernate.ByteCode.LinFu.ProxyFactoryFactory
,NHibernate.ByteCode.LinFu")
  )
  .Mappings
  (
    m => m.FluentMappings
.AddFromAssemblyOf<OneClass.Of.My.Repository>()
  )
  .BuildSessionFactory();

Bisogna fare attenzione che esistono 2 regole affinchè si possa correttamente caricare il mapping di Entity caricate tramite il metodo AddFromAssemblyOf:

1. dichiarare sempre public le classi di mapping;
2. definire sempre le proprietà Id;

Related Posts:

1 Commento al post: “Fluent NHibernate mapping exception: Association references unmapped class”

  1. Luca Tescione scrive:

    A proposito di Entità…ma quelle di EF. Sicuramente saprai la risposta (e per questo ti invidio con anticipo :) ).
    Allora ho la mia bella Entità con le sue belle proprietà. Si chiama A e ha una relazione 1-* con B, l’altrà entità. Ora EDM mi crea la classe A bella bella e se faccio la reflection GetProprierties() mi da, tra le proprietà (campi) che a me servono anche EntityKey, EntityState, EntityReference (tra A e B).
    Domanda: volendo bindare A a un Grid, in modo del tutto generico, come faccio a dire a .NET di prendere tutte le proprietà di A che non sono quelle generate dall’EDM?. Così mi creo il mio generico datasource e carico in griglia solo le mie proprietà, senza che gli assengo i nomi una per una (cosa bruttissima e poco elegante).

    Come ti anticipo ti invidio già per quello che io non so ghghghgh

    Luca mF

Scrivi il tuo commento