满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述Entity Framework-Model First Approach相关的知识,希望能为你提供帮助。
EF中的model first
所谓mf, 就是使用vs提供的edm designer去设计model,然后将设计好的model使用vs在指定的数据库中生成数据库即可. 当你的项目既没有数据库也没有code的时候, 推荐你在项目中选用model first就行.先来看个例子
- 打开vs, 新建一个console app,
文章图片
- 打开nuget找到ef安装到项目上
文章图片
- add一个ado edm item
文章图片
此时会出现一个弹出窗口, vs2017会有四个选项如下:
文章图片
选择empty edm designer. 这是为model first设计的.其他的不是了. - 点击finish之后会看到edmx的设计页面.以及model browser.
文章图片
- 在diagram页面右键点击选择add一个entity
下图是我创建完成的几个entity
文章图片
- 创建完设计好的entity之后, 在model browser上右键点击generate database from
model
文章图片
此时会出现一个弹出窗体, 提示你按照说明配置一个db connection:
文章图片
- 配置完成后会在项目中生成一个model.edmx.sql的文件, 在vs上直接运行这个文件生成数据库就行了.
文章图片
- 数据库创建完后如果还需要再次修改entity的edm, 改完再次选择generate db from model就行. DDL文件会被修改, 再次执行文件,就会在对应的数据库中完成修改内容.
- 到此为止model first approach的一个demo就完成了.
【Entity Framework-Model First Approach】首先说明一点, 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
推荐阅读
- Linux 内核中的 Device Mapper 机制
- 3.java内存模型以及happens-before规则
- [Functional Programming ADT] Initialize Redux Application State Using The State ADT
- Android Studio高级配置
- appium连接模拟器和真机
- Android Studio 设置编辑器(Editor)的字体字体大小
- 继上篇博客对安卓爬虫以及TextView更新的问题解释
- 使用TensorFlow 2.0实现神经样式转换
- TensorFlow 2.0的十个重要更新