1.为什么学习.net core?

2.创建项目

3.EF、Migation

 

学习.net core

  很low的我现在工作上都没有用上.net core,但.net core未来也是必然趋势,不光是跨平台,它的优雅让.net又上了一个层次,就如当初webForm看.net mvc一样。

 

创建项目

  下载最新的vs2019,创建新项目➡ASP.NET Core Web应用程序➡项目名称、文件位置➡Web应用程序(模型视图控制器)

 刚创建后,等待依赖项自己加载完成。

然后就可以运行一下看看一个崭新的.net core项目就创建完成了。

 

EF、Migration

练习笔记,就记录下自己做过什么,先开始第一个课题,EF。

1.新建一个Management.core类库工程,数据库服务。

 

2.自定义一个DbContext

在创建之前Management.core工程需要引入Microsoft.EntityFramworkCore.SqlServer

 

public class MyContext:DbContext  // 自定义的,必须继承DbContext
{
    public MyContext(DbContextOptions<MyContext> options) : base(options) // 此构造函数是固定写法,将本身类型的options传递给父类构造函数,注意MyContext
    { }
    public DbSet<Student> students { get; set; } // 添加一个model类,此实体类再migration时会再数据库中创建一个Student表
}

 

Student实体类提前创建好,放在Models(自定义)文件夹中。

3.配置数据连接字符串

先创建一个数据库➡在appsettings.json中配置链接字符串

注意ConnectionStrings不要拼写错误,DefaultConnection是连接字符串之一,可以随便命名。

4.Startup.cs注入服务

Startup.cs➡ConfigureServices方法中添加自定义的MyContext服务

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    //添加自定义数据库上下文MyContext
    services.AddDbContext<MyContext>(options => {
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection"), // 第一个参数为数据库连接字符串,从appsettings.json文件中读取配置文件
            b=>b.MigrationsAssembly("Test.Management.core") // 第二个参数将Migration创建到这个工程下
            );
    });
}

5.migration

打开vs的【程序包管理器控制台】➡输入Add-Migration InitialDbContext (InitialDbContext是一个名字

 

 执行成功后,如产生如下文件:

然后再在【程序包管理器控制台】中输入:Update-Database

执行成功后,数据库中就多了一个Student表,完成。

 

打开Migration自动创建的两个cs文件会发现,其实是一些编译的执行数据库的代码,如CreatTable就是创建表,DropTable就是删除表……

 

可能出现的问题:

 在migration迁移的时候,可能会出现各种问题,就从以下几个方向找问题:

1.appsettings.json的连接字符串是否正确,节点拼写是否正确。

2.创建add-migration时,名称不要与自定义的数据库上下文相同如:Add-Migration InitialDbContext,不要写成Add-Migration MyContext

 

ps:删除Migration:Remove-Miagration -Context MyContext