Entity framework 4 实体框架4-设计数据库以实现1对1的多重性

Entity framework 4 实体框架4-设计数据库以实现1对1的多重性,entity-framework-4,entity,enforcement,multiplicity,Entity Framework 4,Entity,Enforcement,Multiplicity,我在我的应用程序中遇到了一个场景,我希望在实体之间具有1:1的多重性,但我不知道如何修改数据库以确保这一点 假设我有一个文档表和一个索引表,其中文档总是有一个索引,而索引只包含在一个文档中。在文档表中,我有一个IndexID字段,因此文档实体有一个指向其索引的导航属性,但索引实体有一个名为Documents的集合导航属性,这不是我想要的,因为只有一个相关文档 以某种方式编辑我的DB模式会很好,这样当我从DB生成模型时,文档实体有一个指向索引的导航,而索引有一个指向文档的导航属性。这可能吗 我想我

我在我的应用程序中遇到了一个场景,我希望在实体之间具有1:1的多重性,但我不知道如何修改数据库以确保这一点

假设我有一个文档表和一个索引表,其中文档总是有一个索引,而索引只包含在一个文档中。在文档表中,我有一个IndexID字段,因此文档实体有一个指向其索引的导航属性,但索引实体有一个名为Documents的集合导航属性,这不是我想要的,因为只有一个相关文档

以某种方式编辑我的DB模式会很好,这样当我从DB生成模型时,文档实体有一个指向索引的导航,而索引有一个指向文档的导航属性。这可能吗

我想我可能可以在模型设计图面中编辑实体模型或其关联来实现这一点。但我担心,在某个阶段,如果我重新加载模型,它会重置此模型和其他类似的模型

是否有一个优雅的解决方案使EF自动意识到存在1:1的多重性


谢谢你的建议

您的数据库没有对文档和索引之间的1:1关系建模,因此EF也没有对其建模。要使用1:1,您的文档和索引必须共享主键。这意味着您将使用某些PK(可能是自动生成的)定义文档,并使用相同类型的PK定义索引,还将定义FK,其中来自双方的PK将参与其中。这将在文档和索引之间强制执行1:0..1关系。0..1是因为您总是需要先插入文档,然后再插入索引(文档将在几秒钟内没有索引)。应用程序逻辑负责强制执行文档始终与索引一起插入