首页 > 数据库 >.net8 winform程序使用EntityFrameworkCore连接数据库

.net8 winform程序使用EntityFrameworkCore连接数据库

时间:2024-05-21 11:51:29浏览次数:29  
标签:数据库 Microsoft EntityFrameworkCore add context net8 public winform

在.NET 8 WinForms应用程序中使用Entity Framework (EF) Core,你需要按照以下步骤操作:
1.添加Entity Framework Core NuGet包。
2.定义你的数据模型。
3.创建数据库上下文 (DbContext)。
4.在数据库上下文中配置Entity Framework。
5.使用Entity Framework Core的API来执行数据库操作。
以下是一个简单的示例:

安装Entity Framework Core NuGet包:
连接sqlserver数据库
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

连接Mysql数据库
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Pomelo.EntityFrameworkCore.MySql
dotnet add package Microsoft.EntityFrameworkCore.Tools

定义数据模型:

using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;

namespace WinFormsApp.Models
{
    [Table("student")]
    public class Student
    {
        /// <summary>
        /// 主键,自增
        /// </summary>
        [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        [Column("last_name"), StringLength(50)]
        public string LastName { get; set; } = string.Empty;
        [Column("first_mid_name"),StringLength(50)]
        public string FirstMidName { get; set; } = string.Empty;
        [Column("enrollment_date")]
        public DateTime EnrollmentDate { get; set; }
    }
}

创建数据库上下文:

using System.Configuration;
using Microsoft.EntityFrameworkCore;
using WinFormsApp.Models;

namespace WinFormsApp
{
    public class XCGDbContext : DbContext
    {
        public DbSet<Student> Students { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //连接mysql,需要安装 Pomelo.EntityFrameworkCore.MySql
            string connStr = ConfigurationManager.ConnectionStrings["MysqlContext"] + "";
            var serverVersion = ServerVersion.AutoDetect(connStr);
            optionsBuilder.UseMySql(connStr, serverVersion);

            //连接sql,需要安装 Microsoft.EntityFrameworkCore.SqlServer
            //optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Blogging;Integrated Security=True");
        }
    }
}

在winform程序中使用EF Core:

using (var context = new XCGDbContext())
{
    // 添加
    context.Students.Add(new Student { EnrollmentDate = DateTime.Now, FirstMidName = "jay" + DateTime.Now.Ticks, LastName = "x" });
    context.SaveChanges();

    // 查询
    var stus = context.Students.ToList();

    // 更新
    foreach (var stu in stus)
    {
        stu.LastName = "star";
    }
    context.SaveChanges();

    // 删除
    var stuToDelete = context.Students.FirstOrDefault();
    context.Students.Remove(stuToDelete);
    context.SaveChanges();
}

使用以下命令来创建和应用数据库迁移:
dotnet ef migrations add InitialCreate
dotnet ef database update

标签:数据库,Microsoft,EntityFrameworkCore,add,context,net8,public,winform
From: https://www.cnblogs.com/xsj1989/p/18203660

相关文章

  • winform开发excel
         Excel的二次开发方法有很多,下面主要介绍一个asponse.cell的使用方法,通过winform制造excel的小软件进行处理excel。 软件主要功能是先检查三个表中数据是否正确,比如是表头及列头等,然后将切割表和材料的数据进行组合,存放到数据跟踪表里。下面是加载到内存过程  ......
  • Winform窗体的属性页没有显示筛选框
    新建一个Wiform项目,在新窗体中添加了一些Button、TextBox,然后查看这个窗体的属性页,发现属性页上方没有属性筛选框如果你装了DevExpress,那么在窗体上放置一些Dev的控件,发现属性出现了筛选框然后尝试一下创建一个Dev窗体DevExpress.XtraEditors.XtraForm,仍然不会出现筛选框,只有......
  • 非常全能WinForm 开发框架 - ReaLTaiizor
    欢迎ReaLTaiizor是一个用户友好的、以设计为中心的.NETWinForms项目控件库,包含广泛的组件。您可以使用不同的主题选项对项目进行个性化设置,并自定义用户控件,以使您的应用程序更加专业。项目地址:https://github.com/Taiizor/ReaLTaiizor步骤1:添加ReaLTaiizor的引用或在NuGet上搜......
  • DevExpress WinForms中文教程 - HTML & CSS支持的实战应用(一)
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!在这篇文章中,我们将概述使用DevExpressWinFormsH......
  • C# WinForm 解除资源文件的占用并删除
    1.删除未解除占用的资源时2.调用WindowsAPI函数解除文件占用[DllImport("kernel32.dll",SetLastError=true)][return:MarshalAs(UnmanagedType.Bool)]staticexternboolCloseHandle(IntPtrhObject);[DllImport("kernel32.dll"......
  • winform控件 datagridview分页功能 界面实现需要有上一页下一页等操作控件 dataGridV
    以下提供一个示例来说明如何在WinForms中实现分页功能,并在分页中实现数据修改并保存的操作。首先,我们需要一个包含数据源的DataGridView控件,并添加上一页、下一页等操作控件来实现分页功能。接下来,我们需要实现数据的加载、分页、修改和保存功能。这里我将提供一个简单的例......
  • WinForm中UI控件不支持从非创建控件的线程进行访问
    背景在WindowsForms应用程序中,UI控件(如按钮、文本框等)被设计为不支持从非创建控件的线程(通常是主UI线程)进行访问。尝试从其他线程访问UI控件会导致不可预测的行为,包括应用程序崩溃。Control.CheckForIllegalCrossThreadCalls属性用于在调试过程中帮助开发者发现这类潜在问......
  • Net8 webAPI 创建(傻瓜式入门)
    前沿学不止境(还是用windows学习吧mac太不友好了)让我来新建个Net8webapicore 然后看到这个页面选择不适用顶级语句然后配置你的目录  然后打开vsstudio看到编辑页面 可以在controllers里面创建新的.cs请求比如我新建了firstController  写入ge......
  • WinForm使用IOC控制程序
    新建WinForm程序1、添加Nuget包Microsoft.Extensions.DependencyInjection2、改变启动项internalstaticclassProgram{///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){//创建服务容......
  • 在 WinForms 应用程序中处理未经处理的异常
    internalstaticclassProgram{///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){//添加事件处理程序以捕获主UI线程中发生的所有异常Application.......