当前位置: 首页 > 编程语言 > C#

如何指定一对一-零关系中的外键?分享

时间:2023-04-10 22:41:29 C#

如何在一对一/零关系中指定外键?我有一个父实体和一个子实体。在DB中,parent的主键是p_p_id,child的外键也是p_p_id数据库中没有外键约束。实体具有在各自类中相互指向的属性。父类publicvirtualChildProjectThisChildProject{get;放;}子类publicvirtualParentProjectThisParentProjection{get;放;这些属性上没有注释,也没有任何类ID。在配置中,我试图在孩子中进行映射。HasRequired(i=>i.ThisParentProject).WithOptional(o=>o.ThisChildProject);EF将尝试使用子键的主键和父键的主键进行映射。但我想在子节点和父节点的主键中使用定义的FK默认情况下,EF使用所谓的共享主密钥关联,它使用依赖实体PK作为主体实体的FK。您可以通过Map->MapKey流畅配置指定隐藏(阴影)FK名称来覆盖该行为:HasRequired(e=>e.ThisParentProject).WithOptional(e=>e.ThisChildProject).Map(m=>m。MapKey("p_p_id"));更新:注意隐藏(阴影)的词。EF不支持此类关系的显式FK属性-没有HasForeignKey流畅方法,并且ForeignKey属性会导致错误。所以如果你在ChildProject类中有这样的东西:[Column("p_p_id")]publicintThisParentProjectId{get;放;恐怕唯一的选择是删除它并只使用导航属性。根据您的属性名称,您可能需要添加ForeignKey属性,但标准集合声明很好:http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-第一的。aspx根据您更新的问题,这里是一对一:http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx以上是C#学习教程:如何在一对一/零关系中指定外键?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: