如何使用EF框架操作Sqlite

1.下载相关的NuGet

2.创建如下的项目结构

3.创建AppDbContext类

cs 复制代码
using Microsoft.EntityFrameworkCore;
using SaveSyetemConfiguration.Model;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SaveSyetemConfiguration.DBContext
{
    public class AppDbContext : Microsoft.EntityFrameworkCore.DbContext
    {
        // 数据库连接字符串(动态创建时可通过参数传入)
        private readonly string _connectionString;

        // 构造函数接收连接字符串(支持动态配置)
        public AppDbContext(string connectionString)
        {
            _connectionString = connectionString;
        }

        // 实体集(对应数据库表)
        public Microsoft.EntityFrameworkCore.DbSet<PerSon> PersonData { get; set; } = null;

        // 重写 OnConfiguring 配置数据库选项
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlite(_connectionString); // 使用 SQLite 提供程序
            }
        }
    }
}

4.创建对应的Model类

cs 复制代码
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 SaveSyetemConfiguration.Model
{
    public class PerSon
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public long ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }


    }
}

5.在程序类进行简单的操作

cs 复制代码
using SaveSyetemConfiguration.DBContext;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SaveSyetemConfiguration
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string DbPath = @"D:\NowText";
            string connectionString = "通道1";
            try
            {
                Directory.CreateDirectory(DbPath);
                connectionString = $"Data Source={DbPath}\\{connectionString}.db";
                AppDbContext Db = new AppDbContext(connectionString);
                Db.Database.EnsureCreated();

                Db.PersonData.Add(new Model.PerSon()
                {
                    Age = 1,
                    Name = "张三"
                });
                Db.PersonData.Add(new Model.PerSon()
                {
                    Age = 1,
                    Name = "李四"
                });
                var count = Db.SaveChanges();
            }
            catch (Exception)
            {
               
            }


        }


       


    }

}

结果如下:

相关推荐
Genie cloud7 分钟前
外贸独立站建站完整教程
服务器·数据库·云计算
2301_8223650311 分钟前
数据分析与科学计算
jvm·数据库·python
brave_zhao15 分钟前
达梦数据库导出表结构语句(很好用)(在达梦工具上可执行)
数据库
Gauss松鼠会18 分钟前
【openGauss】openGauss 中一个数据库可以被多个用户访问
数据库·sql·性能优化·database·opengauss
h7ml22 分钟前
高并发场景下查券返利机器人的请求合并与缓存预热策略(Redis + Caffeine 实践)
数据库·redis·缓存
tudficdew23 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
茁壮成长的露露25 分钟前
PMM监控MongoDB
数据库·mongodb
Funky_oaNiu27 分钟前
Oracle如何将用户下的一个表空间的数据迁移到另一个表空间
数据库·oracle
爱学习的阿磊31 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
Full Stack Developme41 分钟前
数据存储的底层都是字符,但在使用时候怎么能变化出各种字段类型
数据库