LINQ to Entitiesでは、SQL結合ではなくリレーションシップの観点から考えると、したがって、SQLの外側のリテラル等価CustomerInfo
にゼロに1つまたは2つの関係を持つエンティティPerson
に参加は次のようになりますはcustomerinfo次いで式全体nullである場合、そのよう
var q = from p in Context.People
select new
{
Name = p.Name,
IsPreferredCustomer = (bool?)p.CustomerInfo.IsPreferredCustomer
};
L2Eは、参加を合体しますnullに評価されます。したがって、nullable boolへのキャストは、null不可能なboolの推論された型がその結果を保持できないためです。
は1対多のためには、一般的に階層ではなく、フラット、SQLスタイルの結果セットをしたい:
var q = from o in Context.Orders
select new
{
OrderNo = o.OrderNo,
PartNumbers = from od in o.OrderDetails
select od.PartNumber
}
このあなたはまだありません詳細は注文を取得するように、左に限り参加するようなものですしかし、SQLのようなセットではなく、OOのようなグラフです。
これはまさに私が探していた質の高い答えです。ありがとうございました! –
+1はこのような良い答えでは不十分です! – Arjang
チップをありがとうございます。誰かがそれを覚えていると、突然L2Eではテーブルとは無関係のオブジェクト間の関係について考えるのは明らかですが、私はそれを考えませんでした。本当に目が離せない... – Quagmire