我们现在已经知道如何使用code first来定义简单的领域类,并且如何使用dbcontext类来执行数据库操作。现在我们来看下数据库理论中的多样性关系我们的老师作文,我们会使用code first来实现下面的几种关系:
1、一对一关系: one to one2、一对多关系: one to many3、多对多关系::many to many首先要明确关系的概念。关系就是定义两个或多个对象之间是如何关联的。它是由关系两端的多样性父亲节贺卡图片值识别的,比如,一对多意味着在关系的一端,只有一个实体,我们有时称为父母;在关系的另一端,可能有多个实体,有时称为孩子。ef api将那些端分别称为主体郭敖和依赖。一对多关系也叫做一或零对多(one-or-zero-to-many),这意味着一个孩子可能有或可能没有父母。一对一关系也稍微有些变化,就是关系的两端都是可选的。
has方法
with方法
配置实体关系:
一对一表关系设计:
一对一关系并不常用,但是偶尔也会出现。如果一个实体有一些可选的数据,那么你可以选择这种设计。
示例中person表作为主表,idcard表作为从表。
person实体类结构如下:
命题作文idcard实体类结构如下:
在使用数据迁移的过程中报错:unable to determine the principal end of an association between the types ‘配置一对一实体关系.model.person’ and ‘配置一对一实体关系.model.idcard’. the principal end of this association must be explicitly configu微微一笑很倾城电视剧插曲red using either the relationship fluent api or data annotations。通过查找资料,解决办法如下:添加required数据注解,修改后的person类结构如下:
通过查看数据库表结构,发现person表和idcards表建立了主外键关系。
总结:使用数据注解配置一对一关系的步骤:
1、使用数据注解key标识主键。
2、两个实体之间的主键key必须相同。
3、两个实体之间有相互引用的导航属性(使用virtual)。
4、在主表中设置外键关系[foreignkey(“personid”)]。
这里使用了haskey方法,指定了一个表的主键,换言之,这是一个允许我们找到一个实体的独一无二的值。之前我们没有用这个方法是因为我们要么用了key特性或者遵守了ef的默认约定(如果属性名是由类名加上”id”后缀或者只是”id”组成,那么ef会计算出该主键)。因为我们现在使用了personid作为主键,所以我们现在需要给运行时提供额外的提示,这就是haskey派生用场的地方。最后子表中的主键会成为父表中的外键。
因为该关系是可选的,所以它也称为一或零对一(one-or-zero-to-one)。关系的两端都是必须要存在的关系称为一对一。比如,每个人必须要有一个单独的login,这是强制性的。你也可以使用withrequireddepentent或者withrequiredprincipal方法来代替withoptional方法。
注意:我们可以总是从该关系的主体端或者依赖端来配置关系。我们总是需要配置一对一关系的两端(即两个实体),使用has和with方法确保一对一关系的创建。
到此这篇关于entity framework管理一对一实体关系的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-06 01:16:13,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/d84b4ce64475ace7991ed72a4575698c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Entity Framework管理一对一实体关系.doc
本文 PDF 下载地址:Entity Framework管理一对一实体关系.pdf
留言与评论(共有 0 条评论) |