.Net6 配置EntityFrameworkCore

配置EF时候我们可以选择新建一个Models类库和项目分离出来,也可以直接在项目里面新建一个Models文件夹,进行存放我们的实体。上述两个方案中,第一个比第二个复杂一点点,所以,我就拿第一个做示例。创建一个与项目分离的实体层。

一、新建一个类库,用来存放我们的实体

在类库项目里面需要添加NutGet包⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

Microsoft.EntityFrameworkCore.SqlServer

 二、添加我们的实体

我这里用Users做一个示例里面就是单纯的和数据库字段对应的实体模型

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Models
{
    [Table("Users")]
    public class Users
    {
        /// <summary>
        /// id
        /// </summary>
        [Key]
        public Guid Uid { get; set; } = Guid.Empty;
        /// <summary>
        /// 名称
        /// </summary>
        public string UName { get; set; } = string.Empty;
        /// <summary>
        /// 密码
        /// </summary>
        public string Pwd { get; set; } = string.Empty;
    }
}

三、新建一个类,书写我们的上下文

using Microsoft.EntityFrameworkCore;

namespace Models
{
    public class DbEntitys: DbContext
    {
        /// <summary>
        /// 配置连接字符串,每次访问数据库之前会自动执行此方法,在这里配置连接字符串
        /// 相当于连接前事件
        /// 使用 IOC 注入的方式不实现此方法
        /// </summary>
        /// <param name="builder"></param>
        protected override void OnConfiguring(DbContextOptionsBuilder builder)
        {
            // 连接字符串
            string ConnString = "连接字符串";

            // 连接SqlServer
            builder.UseSqlServer(ConnString);

            // 连接MySql
            //builder.UseMySql(ConnString,new MySqlServerVersion(new Version()));
        }

        /// <summary>
        /// 默认构造函数 使用方法与原来一样
        /// </summary>
        public DbEntitys() : base() { }

        /// <summary>
        /// 通过IOC
        /// </summary>
        /// <param name="options"></param>
        public DbEntitys(DbContextOptions<DbEntitys> options) : base(options)
        { }


        #region 表映射
        //把我们的实体给映射一下,方便我们后面调用,有几个实体就映射几个实体,写法一样
        public DbSet<Users> Users { get; set; }
        //public virtual DbSet<Tab2> Tab2 { get; set; }
        #endregion
    }
}

四、同上一样,只不过是自动生成

上面操作弄好之后我们的类库就弄完了,上面方法是需要自己手写的,大家直接复制我的就行,大家如果不想手写的话,也可以让他自己生成。自己生成的话,需要下载的NutGet包就会多一点。需要装一个

Microsoft.EntityFrameworkCore.Tools

 通过命令安装是⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

  1. 打开 Visual Studio,并打开您的项目。
  2. 打开控制台窗口("视图" -> "其他窗口" -> "包管理器控制台")
  3. 在控制台窗口中,输入以下命令并按 Enter 键:

Install-Package Microsoft.EntityFrameworkCore.Tools

 安装完成后,您可以使用 Scaffold-DbContext 命令生成实体类。例如,以下命令将从名为 MyDatabase 的 SQL Server 数据库中生成实体类并将其放在 Models 文件夹中:

Scaffold-DbContext "Server=myServerAddress;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
 

 上述命令是生成所有表实体,如果不想生成所有表实体,可以生成单个实体

Scaffold-DbContext "Server=myServerAddress;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables MyTable
 

 这将从名为 MyDatabase 的 SQL Server 数据库中生成 MyTable 表的实体类,并将其放在 Models 文件夹中。您可以将 MyTable 替换为要生成实体类的表名

 五、配置项目

在项目里,我这里用的是.Net Core 6版本的项目,我这里就用这个演示

在上面几个步骤弄好类库之后,我这里需要在Program里面进行注入一下,通过IOC容器大同和数据库的连接

在Program里面注入一下⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

var builder = WebApplication.CreateBuilder(args);
//写到这句下面
//⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇
var ConnString = "连接字符串";
//注入
builder.Services.AddDbContext<DbEntitys>(x => x.UseSqlServer(ConnString));

1、新建一个控制器用来写构造函数方便我们调用

我这里创建了一个名叫BaseController的控制器

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Models;

namespace RedisCeShi.Controllers
{
    public class BaseController : ControllerBase
    {

        /// <summary>
        /// 数据库操作实例
        /// </summary>
        public readonly DbEntitys _db;

        /// <summary>
        /// 构造函数获取实例
        /// </summary>
        /// <param name="db"></param>
        public BaseController(DbEntitys db)
        {
            _db = db;
        }
    }
}

在里面写上我们的构造函数,我们哪个控制器需要操作数据库就继承一下这个控制器,然后生成一下构造函数就行了

如下:⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Models;
using Models;//添加引用
using RedisCeShi.Common;
using RedisCeShi.Model;

namespace RedisCeShi.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    //继承我们刚才写的哪个控制器
    public class ZSGCeShiController : BaseController
    {
        //生成构造函数,打通连接
        public ZSGCeShiController(DbEntitys db) : base(db)
        {
        }

        /// <summary>
        /// 测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public async Task<ActionResult> GetUsers()
        {   //实现调用
            var list = await _db.Users.ToListAsync();
            return Ok(list);
        }

    }
}

以上就是.Net Core 6连接数据库的分离操作。写完后,我们别的控制器只需要继承BaseController控制器就可以了,就可以拿到_db数据实体

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当然!我可以为您提供有关Entity Framework Core的教程。Entity Framework Core是一个面向对象的关系映射器,用于在.NET应用程序中处理数据库操作。它是Entity Framework的轻量级、跨平台版本。 以下是一个简单的教程,帮助您入门使用Entity Framework Core: 1. 安装Entity Framework Core:首先,您需要使用NuGet包管理器或通过命令行安装Entity Framework Core。在NuGet包管理器控制台中运行以下命令: ``` Install-Package Microsoft.EntityFrameworkCore ``` 2. 创建数据模型类:定义您的数据模型类,它们将映射到数据库表。例如,如果您正在构建一个博客应用程序,可以创建一个名为`Post`的类: ```csharp public class Post { public int Id { get; set; } public string Title { get; set; } public string Content { get; set; } } ``` 3. 配置数据库上下文:创建一个派生自`DbContext`的类,用于配置数据库连接和实体集。例如: ```csharp public class BlogContext : DbContext { public DbSet<Post> Posts { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("your_connection_string"); } } ``` 4. 迁移数据库:使用Entity Framework Core的迁移工具来创建数据库或更新现有数据库。在NuGet包管理器控制台中运行以下命令: ``` Add-Migration InitialCreate ``` 然后运行以下命令以应用迁移: ``` Update-Database ``` 5. 进行数据库操作:您现在可以使用Entity Framework Core执行数据库操作。例如,创建一个新的`Post`实例并保存到数据库中: ```csharp using (var context = new BlogContext()) { var post = new Post { Title = "Hello World", Content = "This is my first post!" }; context.Posts.Add(post); context.SaveChanges(); } ``` 这只是一个简单的入门教程,帮助您开始使用Entity Framework Core。您可以进一步学习如何配置关系、执行查询和更新等更高级的操作。希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值