注文には常に顧客がいますね?つまり、左ではなく内側の結合です。
それらをリンクするのはcustomer_idです。つまり、SQLは単純です:
select o.order_number, o.customer_ID, o.address,
c.first_name, c.last_name
from orders o
inner join customer c on o.customer_ID = c.customer_ID;
実体関連:
CustomerCustomer_Id 0 ... N> --- + 1 Customer_Id ... ...
を注文しますこのEF関係は、MSSQLServerのサンプルデータベースNorthwindからのものです。そのサンプルデータベースには、あなたと同じように、顧客と注文があります。 CustomersテーブルとOrdersテーブルは、両方のテーブルのCustomerIdフィールドを介して関連付けられています(これは、Customersの主キーであり、Ordersテーブルの外部キーです)。それをエンティティリレーションとしてモデル化すると、上の図になります。顧客エンティティには、特定の顧客の注文を指す「Orders」ナビゲーションプロパティ(customerId経由)があります。また、Orderエンティティには、その顧客を指すナビゲーションプロパティがあります(これもCustomerIdを介して)。関係は1対0または多数(1-*)です。これは、顧客が0個以上の注文を持っている可能性があることを意味します。
顧客側から参加する場合は、「注文の有無に関係なくすべての顧客を表示したい場合」-0以上の注文の左参加を使用します。 Order(s)を持つものだけを表示したい場合は、内部結合を使用します。
注文側から参加する場合、注文には顧客が必要であるため、左参加にはなりません。内側の参加です。
接続するCustomerIdフィールドを使用して、両側から関係を確認できます。
「OrderId、CustomerId」は多対多の関係ではないため、個別のテーブルはありません(これは純粋な冗長性であり、正規化の異常を引き起こします)。
今より明確になることを願っています。