EFCore 在APS.NET MVC中使用

1.创建一个APS.NET MVC项目

 

2.安装Nuget包

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools

 

3.在Models中添加Book实体类

public class Book
{
    /// <summary>
    /// id
    /// </summary>
    public int Id { get; set; }
    /// <summary>
    /// 书本名称
    /// </summary>
    public string Name { get; set; }
    /// <summary>
    /// 价格
    /// </summary>
    public int Price { get; set; }
    /// <summary>
    /// 所属类型
    /// </summary>
    public string Type { get; set; }
}

4.在appsettings.json中添加链接数据库链接

"ConnectionStrings": {
  "connStr": "server=.;database=BingDbContext;uid=sa;pwd=123456;TrustServerCertificate=True;"
}

5.新建一个类,我这点取名BingBDContext.cs

 

public class BingBDContext : DbContext
{
    public BingBDContext(DbContextOptions<BingBDContext> options) : base(options) { } //相当于 OnConfiguring 方法
    //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    //{
    //    optionsBuilder.UseSqlServer("链接数据库链接");
    //}
    public DbSet<Book> Books { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        //重新定义表名,如果不重新定义,那么就是 Books和 Posts
        modelBuilder.Entity<Book>().ToTable("NewBooks").HasComment("表名注释");
        modelBuilder.Entity<Post>().ToTable("NewPosts");

        //将Book实体类中的Price属性设置为非空,注释为售价,类型为varchar(50),将表中Price属性改为NewPrice,
        modelBuilder.Entity<Book>().Property(p => p.Price)
            .IsRequired()
            .HasComment("售价")
            .HasColumnType("varchar(50)")
            .HasColumnName("NewProice");
    }
}

 

6.在Program.cs中注入BingBDContext

builder.Services.AddDbContext<BingBDContext>(p =>
{
    p.UseSqlServer(builder.Configuration.GetConnectionString("connStr"));
});
//DbContext连接池: 解决频繁创建和销毁带来的性能消耗
builder.Services.AddDbContextPool<BingBDContext>(p =>
{
    p.UseSqlServer(builder.Configuration.GetConnectionString("connStr"));
});


7. 打开解决方案文件,cmd进入,执行

dotnet ef migrations add 自己取一个名字
dotnet ef database update

dotent 需要安装运行时,
dotnet ef 也需要安装
可查看 https://i.cnblogs.com/posts/edit;postId=18283747 安装dotnet运行时,和dotnet ef
-----------------------------------------------------------------------------------------------------------------------------------------------------
7-1: 在vs 包管理控制台执行

add-migration 自定义一个名字
update-database

8.在HomeController.cs中使用

 

posted @ 2024-07-04 15:57  龙卷风吹毁停车场  阅读(1)  评论(0编辑  收藏  举报