3つの列を使用して結合することにより、相互に関連する2つのエンティティを作成しました。どちらも、データベースのビューです。以下のためにTravel
私が持っているId
、FromCityId
とToCityId
、のためにTravelCost
私が持っているTravelId
、FromCityId
とToCityId
。流暢なマッピングは以下の通りです
TravelEntityConfiguration
クラス:
HasMany(x => x.Amounts)
.WithRequired()
.HasForeignKey(x => new
{
x.TravelId,
x.FromCityId,
x.ToCityId
});
旅費は
TravelCostEntityConfiguration
HasRequired(x => x.Travel)
.WithMany()
.HasForeignKey(x => new
{
x.TravelId,
x.FromCityId,
x.ToCityId
});
これらのエンティティをクエリしてナビゲーションプロパティを含めると
context.Set<Table>().Include(x => x.TravelCost)....
結果ごとに、子コレクションの最初のコレクションのみがロードされます。生成されたクエリを確認しましたが、クエリが正しい場合でも、すべての子を含む完全なセットが返され、結合は正しく行われます。ここで何が欠けていますか。今のところ手がかりがない助けが必要です。基本的に、マッピングが正しくないと思いますが、まだ問題は見つかりませんでした。
アサドありがとう、あなたは私の問題を明るくしました。問題は、オンザフライで生成されて最終的に同じになったTravelCostビューのIDにあり、EFはそれが同じレコードであると見なし、マッピングは完全に正しいものでした。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加