NHibernate run-time mapping / legacy databasestructuur

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Xiphalon
  • Registratie: Juni 2001
  • Laatst online: 11-09 15:51
Ik werk aan een webapplicatie, waarbij elke klant bij een aantal tabellen zelf extra kolommen kan toevoegen aan een aantal van de entiteiten die hij gebruikt. Deze extra kolommen worden aan de betreffende tabel in het databaseschema van de klant toegevoegd. Elke klant heeft dus een verschillend aantal extra kolommen.

Deze applicatie is al uit het DOS-tijdperk, en de databasestructuur dus ook :) Helaas mag ik de structuur niet wijzigen, en is het problematisch om met NHibernate deze tabellen te mappen.

Er zijn dus bijvoorbeeld tabellen:

code:
1
2
3
Klant 1: Personeel { ID, Naam, Schoenmaat }
Klant 2: Personeel { ID, Naam }
Klant 3: Personeel { ID, Naam, Rekeningnummer, Auto, HeeftRijbewijs }


Wat ik dus wil is een object

C#:
1
2
3
4
5
6
class Personeel
{
    public String ID { get; set; }
    public String Naam { get; set; }
    public Dictonary<String, Object> ExtraVelden { get; } 
}


Er is binnen de datbase bekend welke extra kolommen er zijn en van welk type (de metadata staat in een aantal tabellen).

Ik ben geen NHibernate expert, en google levert alleen maar op 'je tabelstructuur is fout, pas die aan' dus ik zit vast.

Heeft iemand een idee?

Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 11-09 14:07
dynamic component

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Heb je al eens naar Dapper.net gekeken? Veel zaken welke bij ons zeer moeizaam zijn met NHibernate (of EF, L2S, etc) waren een eitje met Dapper.

Als het geen probleem is dat je zelf de queries schrijft is Dapper een zeer goed framework. Je zou eventueel ook naar 'Massive' kunnen kijken. Net als Dapper is dat een micro ORM van nog geen 500 regels code..

If it isn't broken, fix it until it is..