Frage

Sagen wir, ich habe zwei Tabellen (Address und Phone) in SQL, die eine Eins-zu-Eins-Beziehung haben. Ich habe entsprechend LINQ to SQL-Klassen erstellt und die Zuordnung zu OneToOne

geändert

Ich möchte beide Objekte abzurufen, indem Objekt Kind Filterung. z Ich habe die folgende Abfrage, die gut funktioniert:

var n = db.Addresses.Where(t => t.Phone.Number == 100);

Gibt es eine Möglichkeit, die folgende Arbeit machen kann:

var n = db.Addresses.Where(t => t.Phone == new Phone(100));

Die Phone Klassenkonstruktors oben initialisiert die Number Eigenschaft. Als ich die Abfrage sehen kann, dass eine Klausel ausgegeben wird, enthält die Telefon Tabelle von ID (Primärschlüssel), aber die Anzahl Klausel nicht enthalten.

Filter

Wenn ich Number als Primärschlüssel in Visual Studio eingestellt dann ist es in der where-Klausel enthalten, aber die Suche zurückkehrt immer noch nichts als der Parameterwert für id ist 0. Auch wenn es funktioniert es nicht eine Lösung wie Number ist sollte kein Primärschlüssel sein.

War es hilfreich?

Lösung

Was Sie fragen nicht ganz sinnvoll. Wenn Sie das Telefon-Element die Adresse angegeben möchten, müssen Sie dies, indem Sie die Address.Phone Eigenschaft zugreifen.

Sie können keine Art und Verwendung initialisieren, das zu Projekt, da dies DLINQ, wo die Abfrage übersetzt wird an die DB nach unten. Sie können dies auf Objekte auf Linq tun, aber es würde Sie zwingen, Ihre Liste aufzuzählen, die alle Datenbankinformationen in den Speicher holen würde, die für die Leistung nicht gut sein kann ...

Ich sehe das Problem hier nicht? Sie haben die Adresse, eine Arbeitssuche, und Sie können das Telefon Eigenschaft zugreifen, indem Sie die Eigenschaft Adresse erreichbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top