2016-04-08 8 views
0

私は2つのSQL Serverテーブル - PhoneNumbersPhoneLineTypesを持っています。 PhoneNumbersには、PhoneLineTypes.IDを参照する外部キーPhoneLineTypeIDがあります。説明を参照テーブルからID

Visual Studioは、両方のテーブルのためのクラスを作成したが、PhoneNumberクラスは唯一のタイプPhoneLineTypeのフィールドをPhoneLineTypeIDためintフィールドを持っていません。

私の問題は、私はPhoneLineTypesから来る電話回線の種類の文字列の説明をしたいということですが、私は唯一のPhoneNumbersからint型PhoneLineTypeID(代わりの1私は"Fax"をしたい)を持っています。最終的にWPF ComboBoxをその値にバインドしたいのですが、クラスに存在しないためバインドするものがわかりません。

+0

を行うことができるはず。 – Mike

+0

それは参考です。外部キーはそこにありますので、他のテーブルを使ってルックアップを実行することができます。現在情報を取得するために使用しているLinq/SQLクエリを投稿できますか? –

+0

私はLINQクエリを使用していません。作成されたDataContextクラスVSには、EntitySet プロパティがあります。私はそれに直接アクセスしています。 – Mike

答えて

0

PhoneLineTypeIDをPhoneLineTypesから必要なものに変換するコンバーターを作成する必要があります。あなたがこれについて助けが必要な場合、コンバータの使用方法についてのネット上のチュートリアルがいくつかあります。

0

私は暗闇の中でこれを使って刺すようにしています(あなたのクエリやコードのようなものを見て良かったでしょう)が、あなたのクエリのPhoneNumbersとPhoneLineTypesテーブルに参加する必要があります。 (私はあなたが使用していたと述べたと思う)のLINQを使用して、あなたは私が言ったように、それはいくつかの空白を埋めることなく、より多くのを助けるのは難しいですが、うまくいけば、これはあなたの上に置く必要があります

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" 

のようなものを見ていると思います右のトラック場所であなたの外部キーを持つ

0

は、私はSSMSで作成した既存のテーブルを使用し、テンプレートではなく、EF「LINQ to SQLクラス」を用い、以下の

var query = from number in PhoneNumbers 
      select number.PhoneLineTypes.PhoneLineType 
関連する問題