データベースでは、私はReservations
とOldReservations
テーブルを持っています。ここで、OldReservationsは(Reservations
テーブルの)コピーであり、古い予約を保存するために使用されます。私は、私は、その後にOldReservations
テーブルのフィールドをマッピングしました
3)OldReservations
エンティティから重複プロパティを削除
2)Reservations
エンティティからOldReservation
実体を得なぜTPC継承を使用する場合は、左外部結合を使用してクエリを選択するのですか?
1):ここで私はTPCの継承を作成するためにやった手順は、
しかし、私がfolllowingクエリを実行すると、生成されたSQLはLEFT OUTER JOINを使用して意味がありません。クエリはテーブルのReservations.ReservationID == OldReservations.ReservationID
からの行しか返さないことを意味するためです。
var reservations = context.Reservations;
foreach (var item in reservations);
生成されたSQL::
SELECT CASE
WHEN (NOT (([Project1].[C1] = 1)
AND ([Project1].[C1] IS NOT NULL))) THEN '0X'
ELSE '0X0X'
END AS [C1],
[Extent1].[ReservationID] AS [ReservationID],
[Extent1].[ReservationDate] AS [ReservationDate],
[Extent1].[ContactID] AS [ContactID],
[Extent1].[EventID] AS [EventID],
[Extent1].[RowVersion] AS [RowVersion]
FROM [dbo].[Reservations] AS [Extent1]
LEFT OUTER JOIN (SELECT [Extent2].[ReservationID] AS [ReservationID],
cast(1 as bit) AS [C1]
FROM [dbo].[OldReservations] AS [Extent2]) AS [Project1]
ON [Extent1].[ReservationID] = [Project1].[ReservationID]
TPC選択クエリ左外側を使用してはdoesnのに参加し、私が読んだ記事からは、上記のクエリは、UNION演算子を使用する必要がありますし、LEFT OUTER JOINをないようです意味が分からないので、TPC継承を作成するときに私は間違って何をしていますか?
ありがとう
これはTPT継承のクエリのようです。 –
申し訳ありませんが、私はあなたの返信に気づいていません。あなたは何を得ているのか分かりません。 – user702769