winfrom .net 6使用EF Core,使用的是Code First代码先行

前言

EF Core 主力是做web端,webMVC、web API。也支持应用程序,不过在未来的企业更新升级换代比较快,每次更新的话桌面程序还需要重新部署,也是比较费劲。

推荐

给大家推荐一个.net的学习视频,讲的挺好的,前提是有一定的C#语法基础
.net core 6.0视频

本机环境

IDE:vs 2022
数据库:vs自带SQL Server数据库
.net 版本:.net 6.0

步骤

  • 创建winfrom项目
    注意不是.net Framework
    在这里插入图片描述

  • 创建之后 拖拽绘制一个登录页面吧
    在这里插入图片描述

  • 安装EF Core的包
    Microsoft.EntityFrameworkCore.SqlServer:6.0.7
    Microsoft.EntityFrameworkCore.Tools:6.0.7
    如果想要连接其他数据库可以参照官网:支持的其他数据库连接
    在这里插入图片描述

  • 安装完成后
    在这里插入图片描述

  • 创建模型
    在这里插入图片描述

using System.Text;
using System.Threading.Tasks;

namespace 多用户管理系统.Model
{
    internal class User
    {
    	#?  表示值可为空,如果不标记的话,会警告,除非在构造函数中赋值
        public int Id { get; set; }
        public string? UserName { get; set; }
        public string? PassWord { get; set; }
		
		/*
		public User(int id, string userName, string passWord)
        {
            Id = id;
            UserName = userName;
            PassWord = passWord;
        }
        */
    }
}
  • 创建UserConfigure 用于设置数据库字段的配置
    使用的是fluent API,单独配置每一个实体的类型
    在这里插入图片描述
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 多用户管理系统.Model
{
    internal class UserConfigure : IEntityTypeConfiguration<User>
    {
        public void Configure(EntityTypeBuilder<User> builder)
        {
            builder.ToTable("T_User"); //设置表名
            builder.HasKey(x => x.Id);//设置为主键
            builder.Property(a => a.Id).IsRequired().IsUnicode();//设置不为空,且编码格式为Unicod
            builder.Property(a => a.UserName).IsUnicode().HasMaxLength(30);//设置编码格式与最大长度为30
            builder.Property(a => a.PassWord).IsUnicode().HasMaxLength(30);//意义同上
        }
    }
}

  • 创建TestDbContext.cs 类,用于连接数据库相关
    在这里插入图片描述
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 多用户管理系统.Model;

namespace 多用户管理系统
{
    internal class TestDbContext: DbContext
    {
        public DbSet<User> Users { get; set; }//用户绑定实体类

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            string connStr = "Server=Chinese_PRC_CI_AS.;Database=demo1;Trusted_Connection=True";//数据库连接字符串
            optionsBuilder.UseSqlServer(connStr);//连接数据库

        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
        }
    }
}

  • 使用迁移命令
    在这里插入图片描述
    Add-Migration User
    解释:Add-Migration + 名称[迁移要起的名字],会生成迁移文件
    在这里插入图片描述

Update-Database
[在数据库生成数据表]
在这里插入图片描述

这样就可以访问数据库了

  • login登录判断
    对数据库有两种方式设置初始数据,1.直接连接数据库,存放数据。2.设置种子数据,3.直接在数据库初始化

数据库中的值

在这里插入图片描述
登录button按钮事件

private void button2_Click(object sender, EventArgs e)
{
    //
    if (textBox1.Text == "" || textBox1.Text == "")
    {
        MessageBox.Show("用户名或账号不能为空");
    }
    else
    {
        using (TestDbContext ctx = new TestDbContext())
        {
            var user = ctx.Users.FirstOrDefault(u => u.UserName == textBox1.Text && u.PassWord == textBox2.Text);//按照条件查找数据,找到就返回第一条数据,没有找到就返回为空
            if (user != null)
            {
                MessageBox.Show("登录成功");
            }
            else
            {
                MessageBox.Show("用户名密码不正确");
            }
        }
    }
}
  • 效果展示
    在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 .NET Core WinForms 应用程序中使用 NLog 日志记录器,需要执行以下步骤: 1. 首先,通过 NuGet 安装 NLog 包。可以使用 Visual Studio 的 NuGet 包管理器或在项目文件中手动添加以下依赖项: ``` <PackageReference Include="NLog" Version="x.x.x" /> ``` 2. 创建 NLog 配置文件。可以在应用程序的根目录中创建一个名为 `nlog.config` 的 XML 文件,并使用以下示例配置: ``` <?xml version="1.0" encoding="utf-8"?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="file" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message} ${exception:format=tostring}" /> </targets> <rules> <logger name="*" minlevel="Trace" writeTo="file" /> </rules> </nlog> ``` 该配置将日志记录到位于应用程序根目录下的名为 `logs` 的文件夹中,并将日志级别设置为 `Trace`。 3. 在应用程序代码中引用 NLog 并创建一个日志记录器。可以使用以下代码: ``` using NLog; // ... private static readonly Logger logger = LogManager.GetCurrentClassLogger(); ``` 4. 在需要记录日志的位置调用日志记录器的方法。例如: ``` logger.Debug("Debug message"); logger.Info("Info message"); logger.Warn("Warning message"); logger.Error("Error message"); logger.Fatal("Fatal message"); ``` 这将记录不同级别的日志消息,并在配置文件中指定的位置写入日志文件。 以上步骤应该能够帮助您在 .NET Core WinForms 应用程序中使用 NLog 记录器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值