流れるような API を使用して、既存のデータベースを POCO クラスにマップしようとしています。1対多および多対多の関係ではすべてがうまく機能しますが、私が試した無数のオプションでは1対1は失敗します.
SQL テーブルは単純でAgent
、AgentID
as PK およびas PK と column を使用しAdditionalAgentInfo
ます。にはありませんが、テストデータベースにこれを追加して、これで問題が解決するかどうかを確認しました。AdditionalAgentInfoID
AgentID
Agent
AdditionalAgentInfoID
すべての投稿は、次のことを指摘しています。
pModelBuilder.Entity<Agent>()
.HasOptional(u => u.AdditionalAgentInfo)
.WithRequired(x => x.Agent);
pModelBuilder.Entity<AdditionalAgentInfo>()
.HasRequired(u => u.Agent)
.WithOptional(x => x.AdditionalAgentInfo);
コンテキストが読み込まれますが、Agent.AdditionalAgentInfo
常に NULL です。プロファイラーを調べると、SQL は間違った列に結合しようとします。
FROM [dbo].[AdditionalAgentInfo] AS [Extent1]
WHERE [Extent1].[AdditionalAgentInfoID] = @EntityKeyValue1
そのはず :
FROM [dbo].[AdditionalAgentInfo] AS [Extent1]
WHERE [Extent1].[AgentID] = @EntityKeyValue1
だから私は追加しようとしましMap(x=>x.MapKey("AgentID")
たが、列の重複エラーが発生します。
何が欠けていますか?