zoukankan      html  css  js  c++  java
  • EF使用CodeFirst创建数据库和表

    EF支持三种实体模型:Code First,Model First和DB First,分别表示代码优先,模型优先和数据库优先。目前就个人来说使用CodeFirst最多,对此相对比较熟悉,先写下Code First的使用吧。

    那什么是Code First代码优先呢?通俗来说,就是先写好代码,建立好模型,程序员只需关注对象间的关系,即可在数据库生成相应的表,基本上做到了与数据库的完全分离。为啥说基本上呢,其实是有道理的。

    那Code First有什么优点呢?我们为什么要用它?

    (1)如上面所说,程序员不需要关心数据库里面的情况,只需处理好类和对象的关系就好,其余的事情不用咱们管了。

    (2)应该是便于测试吧,因为使用DBFirst的话会生成EDMX文件,它与数据库绑定性较强,个人觉得略麻烦。

    (3)微软主推CodeFirst吧,这应该算是一个不错的工具。

    那么接下来咱试试看!

    1、先创建一个项目,啥都行,我习惯性的弄了一个控制台,先添加一个文件夹,再右键添加--新建项,选择ADO.NET实体数据模型,为项目命名,点击添加。


    2、在实体数据模型向导中选择空的CodeFirst模型,官方也给出了说明,可以生成数据库。


    3、系统会自动生成一个类,注意,我们需要自动生成的模型都需要继承自DbContext,可以看到,微软已经给了我们很多提示了,比如:我们需要自己配置连接数据库的字符串;我们要创建的类都需要在MyEntity实体类中添加DbSet。不得不说微软在这些地方做的还是很不错的,一目了然!


    4、然后我新建了两个类,UserInfo和Roles。这里需要根据提示引入相应的命名空间。并且需要用Key为自己的表指定主键,用Table为类指定表名,StringLength为字段定义长度.........



    这时需要按照微软提供的模板将这两个类添加到DbSet。这里的“name=MyEntity”表示使用名字为MyEntity的字符串连接数据库,如果只写"MyEntity"的话,表示直接创建名字为MyEntity的数据库。


    5、接下来就可以撸一段代码了。


    到这里即将信息输入完成了,但是还差一步,细心的小伙伴应该想到了,都没有数据库,这添加到哪去啊。因此下面这一步也是不可少的。

    6、在App.Config中,有一个名字为MyEntity的配置字符串,这里我们需要修改成我们想要的服务器名称、数据库名和登录信息。


    点击运行后就会生成相应的数据库还有表啦。


    表已经生成了,数据也添加进去了。


    通过上面的例子可以看到,使用空的CodeFirst模型设计数据库是很方便的,我们不需要关注数据库的使用方法,只需按照套路建实体类,声明字段,然后操作其对象,就可以生成数据库和表啦。因此这种方式是很适合数据库的迁移的,只需把程序拷到另一台电脑上运行一下就OK了。


  • 相关阅读:
    linux 上安裝lnmp
    html 禁用点击事件
    nftables 是什么? 提供什么功能? 如何使用?
    ESXi主机RAID卡_HBA卡_网卡 型号_固件_驱动查询
    Celery Beat定时任务
    Centos 7/8 安装Rabbit-MQ
    Celery 最佳实践
    Django 3.0 + Celery 4.4 + RabbitMQ
    C语言Socket示例
    深入理解计算机系统 — 读书笔记
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351539.html
Copyright © 2011-2022 走看看