EF中的model first

所谓mf, 就是使用vs提供的edm designer去设计model,然后将设计好的model使用vs在指定的数据库中生成数据库即可. 当你的项目既没有数据库也没有code的时候, 推荐你在项目中选用model first就行.

先来看个例子

  1. 打开vs, 新建一个console app,
  2. 打开nuget找到ef安装到项目上
  3. add一个ado edm item

    此时会出现一个弹出窗口, vs2017会有四个选项如下:

    选择empty edm designer. 这是为model first设计的.其他的不是了.
  4. 点击finish之后会看到edmx的设计页面.以及model browser.
  5. 在diagram页面右键点击选择add一个entity
    下图是我创建完成的几个entity
  6. 创建完设计好的entity之后, 在model browser上右键点击generate database from
    model

    此时会出现一个弹出窗体, 提示你按照说明配置一个db connection:
  7. 配置完成后会在项目中生成一个model.edmx.sql的文件, 在vs上直接运行这个文件生成数据库就行了.
  8. 数据库创建完后如果还需要再次修改entity的edm, 改完再次选择generate db from model就行. DDL文件会被修改, 再次执行文件,就会在对应的数据库中完成修改内容.
  9. 到此为止model first approach的一个demo就完成了.

model first模式下对于已经部署的数据库的修改

首先说明一点, model first与DB first都没有和code first类似的migration功能.
所以在官网的教程中也提到过以下tip:

"The script that is generated will drop all existing tables and then recreate the schema from scratch. This may work for local development but is not a viable for pushing changes to a database that has already been deployed. If you need to publish changes to a database that has already been deployed, you will need to edit the script or use a schema compare tool to calculate a migration script."

所以一般对于已经部署的数据库, 如果想更改edmx, 那么最好先对数据库进行更改后, 在edmx上右键点击后选择update model from database, 否则你可能会丢失部署环境的数据库中的数据.我觉得就是因为这一点, 很多情况下, 尽量不要选择model first approach.

参考资料

https://docs.microsoft.com/en-us/ef/ef6/modeling/designer/workflows/model-first

最新文章

  1. jsp页面格式时间yy-mm-dd
  2. Ubantu16.4的安装过程以及基本配置
  3. java对话框形式实现加减乘除
  4. 微信公众号开发之LBS
  5. Diagram of Spring 3.0 module dependencies--转载
  6. JDBC_mysql---防sql注入,存储图片
  7. ubuntu14.04下手动安装eclipse
  8. 配置HAProxy支持https协议
  9. 1.移植uboot-分析uboot启动流程(详解)
  10. 十分钟学会Java8的lambda表达式和Stream API
  11. iview中,table组件在缩进时产生的bug。
  12. 实现加载Tomcat服务器中的图片,并且有进度条提示进度
  13. Logback 日志持久化
  14. Vue 相关难点汇总
  15. nc命令使用详解
  16. JVM(一)Java内存模型
  17. HTTP 错误 404.11 - Not Found 请求筛选模块被配置为拒绝包含双重转义序列的请求。
  18. 一:SpringDataJPA
  19. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法
  20. MySQL 分区知识点(三)

热门文章

  1. Web 测试总结
  2. 《JavaScript》 程序基本知识 数据类型。 {0912上} {0912下}
  3. Excel GET.DOCUMENT说明
  4. 免费API 接口罗列,再也不愁没有服务器开发不了APP了(下)【申明:来源于网络】
  5. Ubuntu 18.04安装JDK并配置环境变量
  6. Hyper-v带宽限制以及验证工具
  7. Linux之grep的使用
  8. mybatis中namespace配置方式
  9. Spring Boot事务管理(下)
  10. dyld_shared_cache_extract_dylibs failed