假设我们的数据库中有两个表。
表 1 有字段:
Id
Field 2
Field 3
表 2 有字段:
Table1Id
Field 2
Field 3
现在 Table1 的 PK 是 Id,而 Table 2 的 PK 是 Table1ID(这是有道理的。)
Table1 可能有也可能没有与之相关的 Table2 实体。(取决于 Table1.Field2 的值是否为 3,但无论如何..)
我在 Table2 上设置了一个 FK,以便 Table1.Id 与 Table2.Table1Id 相关
我的最终目标是,当通过实体框架(顺便说一下,db-first)访问 Table1 时,我可以通过 Table1.Table2 (应该为空或填充)访问我的 Table2 实体。
现在,我必须做类似 Table1.Table2s.First()
我缺少什么关系让这个 First() 不必要?
注意:表 1 已经存在于我们的数据库中并被使用。表 2 是新事物的一部分。
这是我当前创建的 Table2 导致我的问题
CREATE TABLE Table2(
Table1Id NUMERIC(18, 0),
Field2 BIT NOT NULL,
Field3 BIT NOT NULL,
CONSTRAINT Table2_pk PRIMARY KEY (Table1Id ),
CONSTRAINT FK_Table1ID
FOREIGN KEY (Table1Id)
REFERENCES Table1(Id)
);
更奇怪的是,EDMX 中的一切看起来都很好
此外,EDXM 文件的关联检查出多重性 1 和 0..1
编辑:
经过足够的笨拙,这行得通。我恢复了我的模型并从头开始/再次/建立了连接,它神奇地起作用。如果我弄清楚原因,我会尝试考虑为什么会这样工作并进行编辑。