2009-08-30 7 views
1

私は亜音速の新人です。メンバーとクラブという2つのテーブルを持つデータベースがあります。 Clubテーブルには、Memberテーブル(PresidentID、VicePresidentID、およびTreasurerID)の主キー(ID)にリンクする3つのフィールドがあります。 Member.SingleOrDefaultを3回呼び出すと、すべて有効なデータが返されます。 すなわち:SingleOrDefaultクエリは、データがあるにもかかわらずnull(時には)を返します

President = Member.SingleOrDefault(x => x.ID == club.PresidentID); 
VicePresident = Member.SingleOrDefault(x => x.ID == club.VicePresidentID); 
Treasurer = Member.SingleOrDefault(x => x.ID == club.TreasurerID); 

亜音速はうまくバックメンバーテーブルを参照アクティブレコードクラブクラスのメンバープロパティを作成します。しかし、私がClub activerecordクラスのMembersプロパティで同じ呼び出しを行うと、nullが返されるものもあります。 すなわち:通話の

President = Club.Members.SingleOrDefault(x => x.ID == club.PresidentID); 
VicePresident = Club.Members.SingleOrDefault(x => x.ID == club.VicePresidentID); 
Treasurer = Club.Members.SingleOrDefault(x => x.ID == club.TreasurerID); 

つまたは多分2は、データを返しますが、それ以外はnullを返します。これはまったく同じメンバーIDで起こりますが、何が間違っていますか?

多くのありがとうございました。

デイブ・ヘッド

答えて

2

私はそれがのIQueryable FKのセットアップと混同なっていると思う - 子IQueryablesを作成するとき、それは外部キーのすべてを尊重いないことを意味しています。

SQLプロファイラを使用している場合、これらの呼び出しで何が生成されているかを知ることは素晴らしいことです。今のところあなたはこれを回避することができます:

​​
+0

返信いただきありがとうございます。これは実際には機能します。 SQLプロファイラは利用可能だがインストールされていないと思う。私はSQL Serverの完全なコピーを持っていますが、私の開発ボックスにSQL Expressしかインストールされていません。私は呼吸の部屋を得るときにそれをさらに調べます。 Dave –

関連する問題