| 

.NET C# Java Javascript Exception

2
Hallo!

Ich nutze in einem aktuellen Projekt bereits Fluent NHibernate und generiere mir aus den Datenklassen ein Datenbankschema woraus ich eine SQLite Datenbank erzeuge.
Nun benötige ich in diesem Schema aber eine View und keine Tabelle. Die View soll jedoch auf eine Datenklasse gemapped werden. Natürlich in readonly, da es eine View ist.
Das Mapping der Klasse funktioniert soweit, es wird jedoch IMMER eine Tabelle angelegt.
Mein Workaround ist jetzt, nach dem Schema erzeugen ein DROP TABLE gefolgt von CREATE VIEW ...

Meine Frage wäre jetzt, ob es auch möglich ist, das ganze auch fluent zu definieren? Also dass gleich eine View erzeugt wird.


Vielen Dank!
Florian
News:
22.02.2011
Florian Mätschke 370 1 7
1 Antwort
1
Um zu verhindern, dass eine Tabelle aus einer Datenklasse erzeugt wird, kann man in der ClassMap die SchemaAction auf None setzten.

Zum Beispiel so:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id);
Map(x => x.Name);
SchemaAction.None();
}
}


Mehr dazu hier: ClassMap<T> - FluentNHibernate Documentation

Wie man einen View anstatt einer Table erzeugen läßt, weiß ich leider nicht.
03.03.2011
JeffRogge 293 4
Danke! Das spart mir das manuelle Löschen. Das Problem des Erzeugens einer View ist damit jedoch noch nicht gelöst. Ich vermute aber mal, dass es garnicht angedacht ist. In einer View werden unter Umständen auch Werte berechnet und aggregiert, wie soll man das fluent definieren? Sicher viel zu umständlich. Ein ansatz wäre vielleicht eine SQL-Statement Command in der Fluent-Map. Vielleicht bau ich mal so ne Extension ;)
Florian Mätschke 08.03.2011
1
Am einfachsten wäre es am Ende des Erstellungsprozesses des DDL Scripts noch deine Statements für die Views, oder was auch immer, ans File anzuhängen. Ich lasse das Script zum Beispiel am Ende komplett überarbeiten und alle Indizes in eine eigene Filegroup packen, siehe http://www.ieg-tools.net/nhibernate/34-nhibernate-und-sql-server-filegroups.html
cybere 15.12.2012

Stelle deine Nhibernate-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH