Learning EntityFramework(3)

Code First New Database

  1. 创建表类型和里面的列
    • int类型默认为主键类型? 默认以Id或类型名Id组合而成命名方式命名的属性为主键。
    • 有两种类型的属性,Navigation属性(定义了对象间的关系)和Scalar属性
    • 使用virtual关键词的属性将被延迟加载,通常被使用在Navigation属性上。
  2. 添加EntityFramework的引用
  3. 添加以DbContext类为基类的Context类,这个Context类型可以被看作为一个数据库的会话。并在Context类中定义每个对象类型的DbSet<T>属性,用来查询对应类型的实例。
    • 通过只有DbSet的类型才会被添加到数据库  
    • 通过继承自DbContext的类,来识别和跟踪变更。
    • DbContext是对ObjectContext的包装,暴露经常使用的方法
    • DbSet则是对ObjectSet的包装。
  4. 创建Context类的实例,并使用这个实例。
  5. 运行后,在对应数据库实例中添加来对应的数据库和数据库表。

Code First Migration

因为表类型会发生变化,但在表类型变化之后,对应的表结构应该也发生变化,这时候就需要用到Migration功能。

  • Package Manager Console中输入"Enable-Migrations",开启Migration功能。
    • 当开启Migration功能后,会在项目中添加一个Migrations的文件夹,里面有一个Configuration类,包含了所有的Migration的配置信息。还会以时间戳为类名的改动信息类。
  • Add-Migration FileName(Can be used to describe the purpose of this migration),创建改动信息类。
  • Update-Database提交pending changes到数据库

可以通过直接修改Model类型,再使用Migration Tool提交更改到数据库

也可以通过在Context类中的重写方法OnModelCreating里,改变Model类型在数据库中的展现。OnModelCreating方法还有其他很多的用处。

转载于:https://www.cnblogs.com/OliverZh/p/ef3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值