質問

のは、私は1対1の関係を持っているSQLの二つのテーブル(AddressPhone)を持っているとしましょう。私は、SQLのクラスに対応するLINQを作成し、

OneToOneする関連付けを変更しました

私は、子オブジェクトをフィルタリングすることにより、両方のオブジェクトを取得します。例えば、私は正常に動作し、次のクエリを持っています:

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

私は、次の作業を行うことができます方法はあります:

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

上記PhoneクラスのコンストラクタはNumberプロパティを初期化します。私が発行されたクエリを見ることができるように含まれていない中で、ID(主キー)により、電話テーブルをフィルタ句が、数句が含まれています。

私はVisual Studioで主キーとしてNumberを設定した場合、それは、where句に含まれているが、idのパラメータ値は、それがNumberが必要として、それは解決策ではない働いていた場合でも0であるように、検索は、まだ何も返しません主キーではない。

役に立ちましたか?

解決

あなたが求めていることは非常に意味がありません。あなたがアドレスを与えられた携帯電話の要素が必要な場合は、Address.Phoneプロパティにアクセスすることで、これを持っています。

あなたはタイプを初期化し、これはクエリがDBにダウン変換さDLinq、あるように投影することを使用することはできません。あなたは、オブジェクトへのLINQでこれを行うことができますが、それは良くないかもしれませんメモリにすべてのデータベース情報を、フェッチでしょうあなたのリストを、列挙するためにあなたを強制するパフォーマンスのために...

私はここでの問題が表示されませんか?あなたはアドレス、そのための作業検索を持っていて、Addressプロパティにアクセスすることにより、携帯電話のプロパティにアクセスすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top