2016-04-08 11 views
0

Ich habe zwei SQL Server-Tabellen - PhoneNumbers und PhoneLineTypes. PhoneNumbers hat einen Fremdschlüssel PhoneLineTypeID, der auf verweist.Get Beschreibung von Referenztabelle von ID

Visual Studio erstellt Klassen für beiden Tabellen, aber die PhoneNumber Klasse hat nur ein int Feld für PhoneLineTypeID und kein Feld vom Typ PhoneLineType.

Mein Problem ist, dass ich die Zeichenfolge Beschreibung der Telefonleitung Art will, das von PhoneLineTypes kommen würde, aber ich habe nur die int PhoneLineTypeID von PhoneNumbers (statt 1 ich will "Fax"). Ich möchte schließlich eine WPF ComboBox an diesen Wert binden, aber da es in der Klasse nicht existiert weiß ich nicht, an was ich binden soll.

+0

I vorhandene Tabellen in SSMS erstellt verwendet tun können und verwendet, um die „LINQ to SQL-Klassen“ Vorlage, nicht EF. – Mike

+0

Es ist jedoch eine Referenz. Der Fremdschlüssel ist da, also hast du einen Wert, mit dem du dann auf dem anderen Tisch nachsehen kannst. Können Sie die Linq/SQL-Abfrage, die Sie gerade verwenden, posten, um die Informationen zu erhalten? –

+0

Ich verwende keine LINQ-Abfragen. Die DataContext-Klasse VS erstellt hat eine EntitySet -Eigenschaft. Ich greife direkt darauf zu. – Mike

Antwort

0

Sie sollten Konverter erstellen, um die PhoneLineTypeID zu PhoneLineTypes zu konvertieren, was auch immer Sie benötigen. Es gibt ein paar Tutorials im Netz, wie man Konverter benutzt, wenn man Hilfe benötigt.

0

Ich mache hier einen Stich im Dunkeln (es wäre schön gewesen, etwas wie Ihre Abfrage oder Code zu sehen), aber Sie müssen die PhoneNumbers und PhoneLineTypes Tabellen in Ihrer Abfrage beitreten. Mit Linq, (was ich denke, Sie sagten, Sie wurden mit), würden Sie so etwas wie

suchen werden
var query = from number in PhoneNumbers 
     join phoneType in PhoneLineTypes 
     on numbers.PhoneLineTypeID equals phoneType.ID 
     select new{ 
      ID = number.PhoneLineTypeID, 
      Name = phoneType.Description 
     } 
phoneComboBox.ItemsSource = query.ToList(); 
phoneComboBox.DisplayMemberPath = "Name"; 
phoneComboBox.SelectedValuePath = "ID" 

Wie ich schon sagte, ist es schwer, mehr zu helfen, ohne in einigen Lücken ausfüllen, aber hoffentlich sollte dies Sie setzen auf die rechte Spur

0

Mit Ihrem Fremdschlüssel vorhanden, sollten Sie folgenden

var query = from number in PhoneNumbers 
      select number.PhoneLineTypes.PhoneLineType