Tutti i post taggati come: ‘nhibernate’

Nov
3

Evitare NHibernate.ObjectNotFoundException

Postato in  
Technology

Una delle caratteristiche che rendono “potente” l’utilizzo di ORM nelle nostre web-application, è la possibilità fornitaci dal lazy load.

Tuttavia, può succedere che quando referenziamo un’altra entità (ad esempio utilizzando Fluent NHibernate) il dato che cerchiamo di tirare su non esista. NHibernate restituirà, quindi, un eccezione di tipo NHibernate.ObjectNotFoundException.

Per evitare questa situazione, è necessario mappare la colonna di reference come segue:

1
2
3
4
References(x => x.ProprietàReferenziata)
  .Column("foreignKeyColumn")
  .Not.LazyLoad()
  .NotFound.Ignore();

(via stackoverflow)
(via fluent nhiberante wiki)

Related Posts:

Sep
22

Fluent Nhibernate save insert NULL values

Postato in  
Technology

Ho appena postato un quesito su stackoverflow, se qualcuno vuole aiutarmi nella soluzione del problema ;)

Related Posts:

Jul
9

TSQL: leggere i tipi delle colonne di una tabella

Postato in  
Technology

Stavo ragionando sull’estender Fluent NHibernate per automatizzare il processo di produzione delle entità (sempre ammesso che non esista ancora nulla del genere).

Mi sono quindi posto il problema di come fare per leggere i tipi delle colonne di una tabella. Mi risponde Joe Webb sul suo blog:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT 
   ORDINAL_POSITION
  ,COLUMN_NAME
  ,DATA_TYPE
  ,CHARACTER_MAXIMUM_LENGTH
  ,IS_NULLABLE
  ,COLUMN_DEFAULT
FROM   
  INFORMATION_SCHEMA.COLUMNS 
WHERE   
  TABLE_NAME = 'TABLE_NAME' 
ORDER BY 
  ORDINAL_POSITION ASC;

Related Posts:

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: