Cop*_*bel 5 edmx ef-database-first entity-framework-6
在我的数据库中,我通过对外键表设置唯一约束来强制执行一对一关系。这被 Sql Server Management Studio 正确识别为一对一关系:
我的问题是 EF6 没有将其识别为一对一关系并在 Person 类上生成一个 Collection:
如果 t4 模板中的 itemCollection 包含唯一键信息,那么当表上有唯一键时,我可以轻松修改 T4 模板以不生成集合。但它们只包含外键信息。我猜这是因为 edmgen 工具没有从数据库中提取这些信息。
有没有办法强制该工具包含数据库中的所有约束,以便我可以在 t4 模板中使用此信息?
小智 1
我认为最好的解决方案是重新考虑您的表格和关系。
选项 1:如果这是一对一的关系,您可以将所有内容都放在一张表中吗?
选项 2:取出 PersonId 列。如果这确实是 1 对 1,甚至是“1 对 0 或 1”关系,则表应该共享主键。关系应该是 Id 和 Id 之间。如果您这样做,EF6 将正确识别它。