vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
NHibernate Problem mit QueryOver 
Autor: C.Schmitt
Datum: 28.12.11 21:03

Guten Abend zusammen,

ich steh immer noch vor dem Problem dass ich nur einen Teil einer Tabelle/Entität haben möchte.
Nun habe ich eine Klasse "Adresse" in der die Properties abgebildet sind wie Strasse, PLZ, Ort etc.

In dieser Klasse gibt es nun eine Methode "Select"

public virtual IList<Adresse> Select(QueryOver<Adresse> queryOver)
        {
            ISessionFactory sessionFactory = SessionFactory.Create();
            using (ISession session = sessionFactory.OpenSession())
            {
                using (session.BeginTransaction())
                {
                    IList<Adresse> adressen = _
                      queryOver.GetExecutableQueryOver(session).List();
                    return adressen;
                }
            }
        }
Das ganze steckt in einer externen DLL, die ich in meinem eigentlichen Projekt eingebunden habe.
Wenn ich nun mein DataGrid in WPF binden möchte (Zum testen mit Codebehind) sieht das so aus:

IList<Adresse> adressen = new Adresse().Select(
                QueryOver.Of<Adresse>()
                .Select(adr => adr.Bezeichnung)
                .Where(adr => adr.ID.IsBetween(100).And(200)));
 
            dataGrid1.ItemsSource = adressen;
Ich möchte nun nicht alle Spalten sondern nur die Spalte "Bezeichnung" haben die dann im Grid erscheinen soll. Allerdings bekomme ich nun eine Exception:

"Unable to perform find[SQL: SQL not available]
Blablubb ist kein Wert des Typs Core.Database.DBObjects.Adresse und kann in dieser generischen Auflistung nicht verwendet werden.
Parametername: value"

Ich habs noch nicht hinbekommen das er mir nur diese 1 Spalte zurückliefert.

Wenn ich das ganze mit einem Termin mache und Transform benutzte:

IList<Termin> tm = new Termin().Select(
                QueryOver.Of<Termin>()
                .Select(t => t.Betreff, t => t.Anwender)
                .Where(t => t.Anwender == "Hans Müller")
                .TransformUsing(Transformers.AliasToBean(typeof(Termin))));
läuft der Code Fehlerfrei durch, und zeigt mir auch 168 Datensätze an, aber alle mit NULL-Werten also keine Daten enthalten, alles leer.

Im Endeffekt muss ich die Möglichkeit haben bei der Methode "Select" Kriterien mit angeben zu können.

IList<Termin> = new Termin().Select("Meine Kritierien und Projektionen");
Vielleicht geht das auch etwas einfacher. Die Entitäten stecken wie gesagt in einer extra DLL. Alles was mit der Datenbank zutun hat ist extern!

Kriterien sollen eben einzelne Felder/Spalten sein und/oder auch Sortierungen, Gruppierungen etc.


Gruß Chris

Beitrag wurde zuletzt am 28.12.11 um 21:06:58 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
NHibernate Problem mit QueryOver1.458C.Schmitt28.12.11 21:03
Re: NHibernate Problem mit QueryOver934Micke29.12.11 15:50
Re: NHibernate Problem mit QueryOver942Micke29.12.11 16:32
Re: NHibernate Problem mit QueryOver1.011C.Schmitt29.12.11 18:10

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel