博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF CodeFirst 实例Demo
阅读量:5264 次
发布时间:2019-06-14

本文共 2361 字,大约阅读时间需要 7 分钟。

一直想搞一个EFCodeFirst的Demo,让自己通过实例真正了解CodeFirst,方便以后有需求的时候可以有思路。网上查了很多资料,发现很多博主的文章大量重复,根据推荐步骤走并不一定能够成功,而且有些注意点没有讲清楚,导致我花费了很长时间才搞定。

现在把具体步骤写出来,总结,记录,分享下EFCodeFirst的精简实例。

Mysql的安装步骤不再给出,安装过程对本实例没有影响,只要记住mysql的root账号密码即可。

Mysql安装完成后需要能使用MySql WorkBench登陆,并看到本机所有的数据库(后面会用到)。

环境:

  • VS2017
  • .net v4.0
  • Mysql v5.7
  • EntityFramework v6.0
  • MySql.Data v6.9.12
  • MySql.Data.Entity v6.9.1

 

  • 新建项目

新建控制台项目,命名随意,我名称设置为EFCodeFirstDemo

  • 添加必要引用

当前项目名称上,右键-管理NuGet程序包,安装下图中的组件包,注意对应的版本(版本不同可能会有一些影响,具体未知,有时间的话可以研究下不同版本的效果)

 

在VS2017中,点击程序包后,右侧可选择安装版本

  • 编辑数据库连接字符串

 在App.config中插入如下字符

Server:数据库地址
port:数据库端口
Initial Catalog:本项目对应的数据库名称(此时数据库可不存在,程序运行后会自动创建,不要用在数据库连接工具中手动创建的,否则程序不会再自动创建表) 最终的App.config文件内容如下,有不同的建议酌情修改,但不要完全复制:
  • 新建类/表

using System;namespace CodeFirstDemo{    public class Student    {        public string ID { get; set; }        public string Name { get; set; }        public Int32 Age { get; set; }        public string Sex { get; set; }        public Boolean State { get; set; }        public DateTime? CreateTime { get; set; }    }}

如果没有指定主键ID会被默认设置为主键

using System.Data.Entity;namespace CodeFirstDemo{    public class CodeFirstDbContext: DbContext    {        public CodeFirstDbContext() : base("name=MyContext")        { }        public DbSet
Studen { get; set; } }}
MyContext为App.Config中
对应的的Name
  • 测试代码

using System;namespace CodeFirstDemo{    class Program    {        static void Main(string[] args)        {            CodeFirstDbContext db = new CodeFirstDbContext();            db.Database.CreateIfNotExists();            for (int i = 0; i < 10; i++)            {                Student s = new Student                {                    ID = Guid.NewGuid().ToString(),                    Name = "Name-" + i,                    Age = 10 + i,                    Sex = "God",                    State = true,                    CreateTime = DateTime.Now                };                db.Studen.Add(s);            }            db.SaveChanges();        }    }}

确认无误后运行:

自动生成的数据库和表

插入的数据:

以上内容如有纰漏欢迎指出,如在操作过程中有其他疑问也可直接留言

 

转载于:https://www.cnblogs.com/yanxh/p/10020368.html

你可能感兴趣的文章
MATLAB数值计算与数据分析(2)
查看>>
JUnit
查看>>
WPF文本框只允许输入数字[转]
查看>>
事务的四种隔离级别和七种传播行为
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
13. 用Roberts、Sobel、Prewitt和Laplace算子对一幅灰度图像进行边缘检测。观察异同。...
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
手机自带输入法emoji表情的输入,提交及显示——前端解决方案
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
LOJ.6160.[美团CodeM初赛 RoundA]二分图染色(容斥 组合)
查看>>
基于CMMI的敏捷开发过程文档裁剪
查看>>
0925 韩顺平java视频
查看>>
软件需求规格说明书
查看>>
53. Maximum Subarray
查看>>
iOS-程序启动原理和UIApplication
查看>>
SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器...
查看>>
git的安装
查看>>
mysql 8.0 zip包安装
查看>>
Spring框架系列(三)--Bean的作用域和生命周期
查看>>