ASP.NET Core MVC用EF框架迁移数据库自动生成增删查改(带部分bug解决办法)

1、创建实体类(Models)

using System.ComponentModel.DataAnnotations;//需要用到特性才引用
namespace BlogManagement.Models
{
    public class ArticleReviewform
    {
        [Key]//主键
        public int ArticleRid {get; set;}
        public int ArticleId {get; set;}
        public string? AuditResult {get; set;}
        public string? ArticleCause {get; set;}
    }
}

2、创建上下文类

using Microsoft.EntityFrameworkCore;//注意引用
using WeiboBackground.Models;
namespace MyBolg.Models
{
    //继承DbContext类
    public class ApplicationDbContext:DbContext
    {
    //数据库类
        public ApplicationDbContext(DbContextOptions options): base(options) {}

        //修饰符|关键字<模型名称> 名称
        public DbSet AccountList {get; set;}

        //扩展数据库:同上,添加完一个需要重新迁移数据库
        public DbSet UserTablecs {get; set;}
    }
}

 

3、引入包NuGte包

1、Microsoft. EntityFrameworkCore.Design

2、Microsoft. EntityFrameworkCore.Sqlite

3、Microsoft. EntityFrameworkCore.SqlServer    !!!!!!!重要

4、Microsoft. EntityFrameworkCore.Tools

5、Microsoft.VisualStudio.Web.CodeGeneration.Design //搭建基架的时候会自动创建

注意:包的版本需要一致,如果没有包搭建会出错

 

 

4、创建上下文类配置

builder.Services.AddDbContext(objd =>

objd.UseSqlServer(builder.Configuration["Data:WeiboBackground:ConnectionString"]));



注意:

ApplicationDbContext:上下文类名

WeiboBackground:下面路由的名称

ConnectionString:同上

注意:

上下文配置写在Program.cs的var app=buider.Build()的上面,以防出错!!

ASP.NET Core MVC用EF框架迁移数据库自动生成增删查改(带部分bug解决办法)_第1张图片

 数据库连接写在appsettings.json中,

//数据库连接

"AllowedHosts": "*",
"Data": {
    "WeiboBackground": {
     "ConnectionString": "Server=.;Database=MyBlog;UID=sa;PWD=sa;Trusted_Connection=True;MultipleActiveResultSets=True;Trust Server Certificate=true;"
    }
}

 

 

5、代码迁移/迁移数据库

Add-Migration init

update-database

6、搭建基架

右键——>添加——>控制器——>视图使用Entity Framework的MVC控制器

注意:

搭建失败,显示:

运行所选代码生成时出错

解决办法:

1、检查上下文配置

2、检查包

3、清理解决方案、重新生成解决方案

7bug

1The ConnectionString property has not been initialized.(ConnectionString尚未初始化)

解决方案:

    检查数据库连接:appsettings.json

代码:

 "AllowedHosts":"*",

 "Data": {

   "WeiboBackground": {

     "ConnectionString":"Server=.;Database=MyBlog;UID=sa;PWD=sa;Trusted_Connection=True;MultipleActiveResultSets=True;Trust Server Certificate=true;"

    }

  }

2、识别不了函数

ASP.NET Core MVC用EF框架迁移数据库自动生成增删查改(带部分bug解决办法)_第2张图片

解决方案:

        1、仔细看代码迁移/数据库迁移中间有横(-)

        2、查看数据库连接语句

3、数据库中添加表没有成功

    解决办法:

        查看自动生成的Migrations中的临时数据表中有没有数据,如果没有就将临时表删除,重新迁移,

ASP.NET Core MVC用EF框架迁移数据库自动生成增删查改(带部分bug解决办法)_第3张图片

 

4、InvalidCastException:无法将类型为“System.DateTime”的对象强制转换为类型“System.String”

(由于疏忽遇到的,也写上)

    解决办法:mondels中的字段类型有没有写错,最好跟数据库中的一样

 

 

你可能感兴趣的:(asp.net,mvc,bug)