前言:
CodeFirst运用的场景比较少,不代表CodeFirst不好,也不能和DbFirst去作比较,本来就是两个东西。
吐槽:
MySql.Data.EntityFrameworkCore 作为Oracle官方维护的组件,居然对EF很多API不支持或者无效,最后放弃使用,改用Pomelo.EntityFrameworkCore.MySql,这是第三方维护的,支持比官方好得多啊。
搭建开始:
1、首先我们需要创建一个.NetCore 3.1的控制台项目,就叫CodeFirstDemo,并且引入以下组件。
-Microsoft.EntityFrameworkCore.Tools 3.1.5
-Pomelo.EntityFrameworkCore.MySql 3.1.1
2、确定好链接字符串,注意:CodeFirst的时候,可以不用创建数据库,程序会自动创建,我们只需要保证能链接到数据库服务就行。server=127.0.0.1;port=3306; user id=root; password=123456;database=test;
3、创建一个Models文件夹,编写我们自己的实体类 UserInfo.csusing System.ComponentModel.DataAnnotations;
namespace CodeFirstDemo.Models
{
///
/// 用户表
///
public class UserInfo
{
///
///用户ID
///
[Key]
public string UserId { get; set; }
///
///用户名
///
public string UserName { get; set; }
///
///用户年龄
///
public int Age { get; set; }
}
}
4、编写我们项目的Context文件,根目录创建也行,单独建个文件夹存放也行,我这里直接放根目录, 取名为TestContext.csusing CodeFirstDemo.Models;
using Microsoft.EntityFrameworkCore;
namespace CodeFirstDemo
{
public class TestContext : DbContext
{
///
///配置
///
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql("server=127.0.0.1;port=3306; user id=root; password=123456;database=te