昨天使用了CodeFirst,就是代码先行,今天试试数据库DatabaseFirst模式。
使用CodeFirst连接Mysql_故里2130的博客-CSDN博客
DatabaseFirst,就是数据库先行,先从数据库入手,两者是可以互相转换的。
环境SqlServer2019数据库,vs2019,建立winform程序
1.首先在数据库中建立数据库是AA,以及3个表,表中字段任意写
注意:一定要带主键,否则无法自动生成
2.打开vs2019,建立一个winform程序
3.右键增加类,选择实体数据模型
4.弹出界面,这里我们依次来介绍一下,不关心直接跳过看第五步
这4个选项,分2部分。前面2个其实就是ModelFirst,后面2个就是CodeFirst。只是说,1和4都是基于先有数据的ModelFirst和CodeFirst。2和3是基于没有数据的ModelFirst和CodeFirst。所以,使用的时候,就先从是否有数据先进行。
那么我们从第一项开始,同样建立一个winform程序,操作可以先看5的步骤,基本上一样
4.1.点击是,点击下一步
4.2.选择实体框架6,点击下一步
4.3.选择表,点击完成
4.4生成了对应的模型
4.5,如果在模型上面增加和减少字段,对应的类也会增加和减少
类中自动增加了
4.6,用法
打开项目整体文件,可以看到AAEntities类
看到这里,估计就恍然大悟了,真是殊途同归,不管使用Database-First,Model-First以及Code-first,最终都是一样的。使用方法参考后面的写法即可。
第二项,其实就是不选择数据库,直接进行模型开发,输入表的字段和表名等等,然后再同步到数据库中。
第三项,也是不选择数据库,直接进行代码输入,输入表的字段和表名等等,然后再同步到数据库中。
第四项,就是本篇所说的。
5.本案例选择最后一个
6.这里我们选择服务器,以及账号密码,对应的数据库是AA
7.然后点击是,进行下一步
8.选择对应的表,点击完成
9. 此时,我们看到自动生成了2个表,数据库中的第三个表,并没有生成。
打开数据库,查看第三个表,可见,没有主键是不能自动生成的。
10. Model1类解释
Model1,名字是建立的时候可以自定义,其中name=Model1对应的就是配置文件中的数据库连接值。OnModelCreating方法,就是表和表之间的关系。这个可以和
使用CodeFirst连接Mysql_故里2130的博客-CSDN博客,对比着看,就会明白了,刚好那边就要生成本篇这样的格式,两者是互补的。
App.config配置文件
11.其余的2个表,就是我们需要的实体类,其实到了这里,和Code First一模一样了,接下来就是如何使用的问题了
12. 使用
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
-
- namespace DB
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
-
- private void Form1_Load(object sender, EventArgs e)
- {
- Table_1 table_1 = new Table_1(); //使用实例化,进行赋值操作
- table_1.q = "111";
- table_1.qq= "1212";
- table_1.qqq = "真香啊";
-
- Model1 model = new Model1();
- model.Table_1.Add(table_1); //增加实体
- model.SaveChanges(); //保存到数据库中,千万别忘记了
- }
- }
- }
下面的连接是EF对应的CRUD操作,可以进行查询。
查询数据 - EF Core | Microsoft Docs
13.此时我们直接运行,就会把数据增加到数据库中了
14.我们也可以进行全部查询
进行条件查询
来源:实体数据模型-DatabaseFirst(SqlServer)_database first_故里2130的博客-CSDN博客