Tutti i post taggati come: ‘orm’

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:

Aug
24

Subsonic 2.1: GetCount() e GetRecordCount() System.InvalidCastException

Postato in  
Technology

Dopo una serie di polemiche sul forum, pare che finalmente siano stati risolti i problemi di Subsonic, relativi ai due metodi GetCount() e GetRecordCount() che potete richiamare sull’oggetto Select.

In realtà, la versione 2.1 final non è fixata. Potete farlo manualmente, modificando i sorgenti, facendo un rebuild della solution e sovrascrivendo il file Subsonic.dll che state utilizzando.

Fix:
Modify SqlQuery/SqlQuery.cs : line 1241
from
count = (int)scalar;
to
count = (int)Utility.ChangeType(scalar, typeof(int));

(via codplex)

Related Posts: