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

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

 

第二步:添加.NET Core类库

 

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

第四步:在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<Role> 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<Role> GetRoles()
        {
            using (var client = new LegalContext())
            {
                return client.Role.ToList();
            }
        }
    }
}

第七步:依赖注入

在Startup.cs  添加

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

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

   services.AddSingleton<IRoleDAL, RoleDAL>();
   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,搞定,希望能帮助到大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值