Entity Framework Code First 模式-建立一对一联系
使用的例子为教室(ClassRoom),教室里的多媒体设备(Device),一个教室里有一套多媒体设备,一套多媒体设备只放在一个教室里。
1.Data Annotations方式
需要在任意一方的主键属性上加ForeignKey,以下是这两种方式的代码以及结果
方法一:
代码:
public class Device
{
[Key, ForeignKey("ClassRoom")]
public Guid ClassRoomId { get; set; } public virtual ClassRoom ClassRoom { get; set; }
public string Remark { get; set; }
}
public class ClassRoom
{
public Guid Id { get; set; }
[ MaxLength()]
public string Number { get; set; }
public virtual Device Device { get; set; }
public string Remark { get; set; }
}
测试结果:


方法二:
代码:
public class Device
{
public Guid Id { get; set; }
public virtual ClassRoom ClassRoom { get; set; }
public string Remark { get; set; }
}
public class ClassRoom
{
[Key, ForeignKey("Device")]
public Guid DeviceId { get; set; }
[ MaxLength()]
public string Number { get; set; }
public virtual Device Device { get; set; }
public string Remark { get; set; }
}
执行结果:


2.Fluent API方式
主要使用WithRequiredPrincipal以及WithRequiredDependent方法,前者属性会被另外的实体引用,后者将引用另外的实体。
方法一:
代码:
public class ClassRoom
{
public Guid ClassRoomId { get; set; }
[ MaxLength()]
public string Number { get; set; }
public virtual Device Device { get; set; }
public string Remark { get; set; }
}
public class Device
{ public Guid DeviceId { get; set; } public virtual ClassRoom ClassRoom { get; set; }
public string Remark { get; set; }
}
modelBuilder.Entity<ClassRoom>().HasRequired(t => t.Device).
WithRequiredPrincipal(t => t.ClassRoom);
结果:


方法二:
代码:
两个类都是相同的,这里就不做展示了
modelBuilder.Entity<ClassRoom>().HasRequired(t => t.Device).
WithRequiredDependent(t => t.ClassRoom);
结果:


Entity Framework Code First 模式-建立一对一联系的更多相关文章
- Entity Framework Code First 模式-建立多对多联系
Entity Framework 在建立多对多的联系时,会生成一个中间表,用来表示这个多对多的关系.这和数据库设计时从概念模型到逻辑模型转化时,多对多的关系不能和任何一端的实体合并,需要将关系也转化为 ...
- Entity Framework Code First 模式-建立一对多联系
一.建立一对多联系 使用的例子为Product与Category,一个种类(Product)对应多个商品(Product) 1.外键列名默认约定 在“一”这边的实体增加一个集合属性(public vi ...
- Entity Framework Code First关系映射约定
本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...
- Entity Framework Code First (三)Data Annotations
Entity Framework Code First 利用一种被称为约定(Conventions)优于配置(Configuration)的编程模式允许你使用自己的 domain classes 来表 ...
- Entity Framework Code First (二)Custom Conventions
---------------------------------------------------------------------------------------------------- ...
- Entity Framework Code First 映射继承关系
转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code Fi ...
- Entity Framework Code First主外键关系映射约定
本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...
- 使用 Entity Framework Code First
使用 Entity Framework Code First 在家闲着也是闲着,继续写我的[ASP.NET MVC 小牛之路]系列吧.在该系列的上一篇博文中,在显示书本信息列表的时候,我们是在程序代码 ...
- Entity Framework Code first(转载)
一.Entity Framework Code first(代码优先)使用过程 1.1Entity Framework 代码优先简介 不得不提Entity Framework Code First这个 ...
随机推荐
- NX二次开发-UFUN获取工程图详细信息UF_DRAW_ask_drawing_info
NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_part.h> UF_initialize ...
- NX二次开发-UFUN创建镜像体UF_MODL_create_mirror_body
NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN ...
- sqlalchemy session
Cookie cookie是浏览器保存在用户电脑上的一小段文本,用来保存用户在网站上的必要的信息.Web页面或服务器告诉浏览器按照一定的规范存储这些信息,并且在以后的所有请求中,这些信息就会自动加在h ...
- Python3 From Zero——{最初的意识:002~字符串和文本}
一.使用多个界定符分割字符串 字符串.split(',')形式只适用于单一分割符的情况:多分割符同时应用的时候,可使用re.split() >>> line = 'asdf fjdk ...
- Springboot-WebSocket获取HttpSession问题
换了新工作,第一个任务就是和这个有关,以前没接触过,没办法,各种度娘.谷哥,大部分都是只言片语,要么就是特定的配置环境还不贴配置--,踩坑无数, 遂整理成笔记 WebSocket协议 WebSocke ...
- 字符串KMP算法
讲解:http://blog.csdn.net/starstar1992/article/details/54913261 #include <bits/stdc++.h> using n ...
- 取地址栏query
GetQueryParm () { var name, value var str = window.location.href var num = str.indexOf(' ...
- springcloud(十六):服务网关 zuul 快速入门
服务网关是微服务架构中一个不可或缺的部分.通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由.均衡负载功能之外,它还具备了权限控制等功能.Spring Cloud Netflix中 ...
- markdown 表情包大法
前段时间偶然发现了markdown竟然可以插入表情,而且竟然如此的简单 表情包网站 (有可能是官网):点击跳转 这些东西真的是有点意思啊,容我举个栗子
- 一个好的mvc5+ef6的学习地址
链接地址: MVC5 + EF6 入门完整教程 感谢这位博主的无私奉献 文章目录列表:http://www.cnblogs.com/miro/p/3777960.html#3673688