最近辞职了,在家学习下新技术,以前虽然用过EntityFramework但是EntityFrameworkCore还是第一次用,虽然目前看区别不是很大,但还是想分享一下学习成果,有什么不对的地方,还请大家多指教.
第一步,先创建WebApi项目
第二步,创建类库MyEntityFrameworkCore
然后添加这个四个NuGet包
1.Microsoft.EntityFrameworkCore
2.Microsoft.EntityFrameworkCore.SqlServer
3.Microsoft.EntityFrameworkCore.Tools
4.Microsoft.EntityFrameworkCore.Design
然后创建数据库实体(UserInfo)
namespace MyEntityFrameworkCore.Entity
{
[Table("UserInfo")]
public class UserInfo
{
[Key]
public int Id { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string? UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
public string? Password { get; set; }
/// <summary>
/// 性别
/// </summary>
public bool Sex { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remark { get; set; }
}
}
然后创建数据库上下文MyDbContext
namespace MyEntityFrameworkCore.Context
{
/// <summary>
/// 数据库上下文
/// </summary>
public class MyDbContext: DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//数据库连接字符串
optionsBuilder.UseSqlServer("Data Source=(local);Initial Catalog=MyTestNet2;User Id=sa;Password=123456");
}
public virtual DbSet<UserInfo> UserInfo { get; set; }
}
}
第三步,也是最关键的一步创建MyDbContextFactory类(不然无法生成数据库)
namespace MyEntityFrameworkCore.Context
{
public class MyDbContextFactory : IDesignTimeDbContextFactory<MyDbContext>
{
public MyDbContext CreateDbContext(string[] args)
{
DbContextOptionsBuilder<MyDbContext> builder = new DbContextOptionsBuilder<MyDbContext>();
builder.UseSqlServer("Data Source=(local);Initial Catalog=MyTestNet2;User Id=sa;Password=123456");
MyDbContext db = new MyDbContext(builder.Options);
return db;
}
}
}
第四步,生成数据库
好了,到这我们就可以生成数据库了
1.打开"打开程序包管理器控制台",并把类库MyEntityFrameworkCore设置为启动项目,并设置为控制台的默认项目
然后在控制台输入 Add-Migration Init 并回车
会弹出生成的表结构信息
确认无误后在控制台输入update-database Init 回车,然后我们的数据库就生成成功了
本文暂时没有评论,来添加一个吧(●'◡'●)