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实体数据模型,为项目命名,点击添加。640?wx_fmt=jpeg


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

    640?wx_fmt=jpeg

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

    640?wx_fmt=jpeg

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

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg



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

    640?wx_fmt=jpeg

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

    640?wx_fmt=jpeg

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

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

    640?wx_fmt=jpeg

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

    640?wx_fmt=jpeg

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

    640?wx_fmt=jpeg

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


  • 相关阅读:
    sqlplus中设定行大小、页大小、字符列格式、数字列格式、清屏
    位图索引
    B树索引
    Oracle列自增实现(3)-DEFAULT Values Using Sequences
    Oracle列自增实现(2)-Identity Columns in Oracle Database 12c Release 1 (12.1)
    oracle列自增实现(1)-Sequence+Trigger实现Oracle列自增
    ORA-01502: 索引或这类索引的分区处于不可用状态
    Oracle中的rowid
    Multitenant Architecture---PDB与CDB
    ODI Studio拓扑结构的创建与配置(Oracle)
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351596.html
Copyright © 2011-2022 走看看