.NET Core 2.1 采用 DBFirst 创建应用程序

第一步:创建空白解决方案

 

.NET Core 2.1 采用 DBFirst 创建应用程序_第1张图片

第二步:添加.NET Core类库

.NET Core 2.1 采用 DBFirst 创建应用程序_第2张图片

 

第三步:添加.NET Core应用程序

.NET Core 2.1 采用 DBFirst 创建应用程序_第3张图片

.NET Core 2.1 采用 DBFirst 创建应用程序_第4张图片

第四步:在CoreDAL项目上安装NuGet包

1、Microsoft.EntityFrameworkCore

2、Microsoft.EntityFrameworkCore.SqlServer(因笔者用的是SqlServer)

3、Microsoft.EntityFrameworkCore.Tools

第五步:生成model

在CoreDA项目中添加EFModel文件夹,打开NuGet控制台,输入命令

Scaffold-DbContext "Data Source=ip(一般使用);Initial Catalog=数据库名称;User ID=登录名;Password=登录密码" Microsoft.EntityFrameworkCore.SqlServer -OutputDir EFModel

注意:数据库表的修改,同步更新Model时,命令加-Force 参数就可以了,如:

Scaffold-DbContext "Data Source=ip(一般使用);Initial Catalog=数据库名称;User ID=登录名;Password=登录密码" Microsoft.EntityFrameworkCore.SqlServer -OutputDir EFModel -Force

系统会自动生DbContext上下文及数据表实体,在AppCore项目添加项目引用CoreDAL

第六步:实现CoreDAL项目

添加接口IRoleDAL

using System.Collections.Generic;
using CoreDAL.Models;
namespace CoreDAL.Interface
{
    public  interface IRoleDAL
    {
        List GetRoles();
    }
}

添加实现类RoleDAL

using System;
using System.Collections.Generic;
using System.Linq;
using CoreDAL.Models;
using CoreDAL.Interface;
namespace CoreDAL
{
    public class RoleDAL:IRoleDAL
    {
        public List GetRoles()
        {
            using (var client = new LegalContext())
            {
                return client.Role.ToList();
            }
        }
    }
}

第七步:依赖注入

在Startup.cs  添加

public void ConfigureServices(IServiceCollection services)
{
   services.Configure(options =>
    {

      options.CheckConsentNeeded = context => true;
      options.MinimumSameSitePolicy = SameSiteMode.None;
   });

   services.AddSingleton();
   services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

在HomeController.cs中添加

private readonly IRoleDAL _roleDAL;
public HomeController(IRoleDAL roleDAL)
{
   _roleDAL = roleDAL;
}

在index中通过_roleDAL.GetRoles()就可以调用

第八步:发布

对于CoreDAL项目,DBContext中的数据连接字符串放在代码中,修改不太方便,笔者把ConnectionString放在AppCore项目中的appseting.json文件中,appsetting.json文件格式为:

{
    "ConnectionStrings": {
        "LegalDB": "Server=你的数据IP;Database=数据库名称;User ID=用户名;Password=密码"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*"
}

配置好appsetting.json后,需在CoreDAL项目中添加NuGet包:

1、安装Microsoft.Extensions.Configuration.Json包(此包用来获取配置字符串)

2、在LegalContext文件中,找到OnConfiguring方法中替换默认生成的注册数据库连接字符串代码,添加如下代码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
var configuration = builder.Build();
optionsBuilder.UseSqlServer(configuration.GetConnectionString("LegalDB"));

注意:需要引入命名空间:

using System.IO;

using   Microsoft.Extensions.Configuration;

OK,搞定,希望能帮助到大家!

你可能感兴趣的:(ASP.NET,MVC)