我正在尝试使用流利的 API 将现有数据库映射到 POCO 类。在一对多和多对多的关系中一切都很好,但是在我尝试过的无数种选择中,一对一的失败了。
sql 表很简单,Agent
带有AgentID
as PK 和AdditionalAgentInfo
as AdditionalAgentInfoID
PK 和 column 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")
但我得到重复的列错误。
我错过了什么?