关系型数据库一般有一对一、一对多、多带多的关系。在EF中,也存在这三种关系,下面我们就先讨论一下一对一的关系。

在博客系统中,一个博客只能对应一个用户,而一个用户可以对应多个博客。这就是一对一和一对多关系的体现。

在没有设置一对一关系时,返回的数据如下:

public class Blog:BaseEntity{public string BlogName { get; set; }public string BlogUrl { get; set; }public string BlogContent { get; set; }public int UserId { get; set; }//public BlogUser BlogUser { get; set; } }

View Code

public BlogMap(){this.ToTable("Blog");this.HasKey(c => c.Id);//this.HasRequired(ci => ci.BlogUser).WithMany().HasForeignKey(p => p.UserId);}

View Code

如果我想得到博客对应的用户,那么我们还得根据用户id再查找一次。我们可不可以在获取博客的时候顺便也把对应的用户一起获取出来呢?答案是可以的。

public class Blog:BaseEntity{public string BlogName { get; set; }public string BlogUrl { get; set; }public string BlogContent { get; set; }public int UserId { get; set; }public virtual BlogUser BlogUser { get; set; } }

View Code

public BlogMap(){this.ToTable("Blog");this.HasKey(c => c.Id);this.HasRequired(ci => ci.BlogUser).WithMany().HasForeignKey(p => p.UserId);}

View Code

这样,就把博客跟用户的一对一的关系建立起来了。

通过运行结果,我们可以发现:

BlogUser对应已经加载出来了,只不过此时仍是linq对象

但是我们可以直接使用该对象。

不过细心的读者可能会发现,为什么BlogUser要声明为virtual呢?这就是EF的延迟加载机制,关于延迟加载,后面会进行讨论。

转载于:https://www.cnblogs.com/dengwenbo/p/4748873.html

Entity Framework的简单使用之一对一关系相关推荐

  1. ADO.NET Entity Framework Extensions 简单应用

    一.情景 如果你的项目中有返回多结果集的存储过程. 如果你的项目要和老项目中的ADO.Net共用事务. 如果你要动态的创建数据库的表. 但是你还是希望使用Entity Framework.那么继续往下 ...

  2. java EF6,EF Core 2.0和EF6(Entity Framework 6)中配置实体映射关系

    1.EF6中通过EntityTypeConfiguration配置实体映射关系代码 public class AccountMap : EntityTypeConfiguration { public ...

  3. Entity Framework Code First关系映射约定

    本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...

  4. ADO.NET Entity Framework 基本概述

    时间过得很快转眼间VS已经2010版了,在4月12日将会正式发布VS 2010 ADOEF 做为.Net 4.0 中被微软推荐的ORM框架,相比.Net 3.5 sp1 已经得到了进一步的增强,使用它 ...

  5. abp mysql .net core_ABP .Net Core Entity Framework迁移使用MySql数据库

    一.迁移说明 ABP模板项目Entity Framework Core默认使用的是Sql Server,也很容易将数据库迁移到MySQL,步骤如下. 二.迁移MySQL步骤 1. 下载项目 请到 ht ...

  6. 如何使用 Entity Framework 的 DbContext

    微软的 Entity Framework 是一个开源的 对象-关系映射 ORM 框架,它帮助我们打通了 数据库的数据模型 到 代码层的领域模型,Entity Framework 简化了应用程序对数据库 ...

  7. ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...

  8. Entity Framework 实践系列 —— 搞好关系 - 单相思(单向一对一,one-to-one)

    原以为躲入代码世界,就可以不用搞关系,哪知"关系无处不在".写代码多年之后,终于明白"面向对象的关键是搞好对象之间的关系".而Entity Framework作 ...

  9. LINQ TO SQL和Entity Framework 的关系 你了解多少?

    1. LINQ  TO SQL 和EF 特点:  LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射.其中包括的有DBFrist  C ...

  10. Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many

    通过 Entiy Framework实践系列 文章,理了理 Entity Framework 的实体关系. 为什么要写文章来理清这些关系?"血"的教训啊,刚开始使用 Entity ...

最新文章

  1. 数学建模公式编辑器_一款“神奇”的数学公式编辑器
  2. 【Linux系统编程】fork()函数详解
  3. .html文件可以删掉吗,packages文件夹可以删除吗?
  4. linux中代码挂上n,Linux系统常用命令nl详解(示例代码)
  5. 使用System Center Essentials 2007查看计算机的软件清单
  6. loadrunner中变量转换成一个参数
  7. 批处理中%1~%9是什么意思?
  8. 实用的软件安装及使用
  9. Android 接入阿里云推送com.aliyun.ams:alicloud-android-push:3.7.4步骤(一)
  10. Linux下安装宋体以及微软雅黑字体
  11. 整车控制器(VCU)开发 之 概述
  12. java xheditor_xhEditor与Java结合使用
  13. 计算机导师问读研计划和后续计划,考研面试,问“研究生时期的规划”怎么回答急...
  14. 计算机 上的图片怎样加密码,高手加密法之利用图片给电脑加密新招
  15. 高清无线投影服务器,投影+高清+无线 教你轻松玩转家庭影院
  16. RPA机器人有哪三大优势?
  17. 中维世纪视频汇聚助力茶之都奶茶连锁店部署智慧运营系统
  18. 是一种心灵的默契,爱一个人不一定要拥有
  19. ppt模板文字拆分怎么制作?
  20. python学习--quote()函数

热门文章

  1. 阶段3 1.Mybatis_08.动态SQL_03.mybatis中动态sql语句-foreach和sql标签
  2. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_1_使用Properties集合存储数据,遍历取出集合中的数据...
  3. 牛客多校训练AFJ(签到)
  4. eclipse没有server选项
  5. CSS选择器 ~ +
  6. C11简洁之道:函数绑定
  7. AfxMessageBox详细使用说明
  8. ACM 竞赛高校联盟 练习赛 第六场 光头强的强迫症(线段树)
  9. 数据结构 静态队列笔记
  10. 防止恶意登录的设计思路