Sqlite EF CodeFirst For WPF

news/2025/10/26 19:17:41/文章来源:https://www.cnblogs.com/sundh1981/p/19167223

在WPF 开发中使用Sqlite 数据库的EF框架

1.安装必要的插件

  install-package System.Data.Sqliteinstall-package System.Data.Sqlite.EF6install-package Sqlite.CodeFirst

2.建立数据模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
namespace WpfApp4.Models
{public class Student{[Key]public int Id { get; set; }public string Name { get; set; }}
}

3.建立数据上下文

using SQLite.CodeFirst;
using System.Data.Entity;
namespace WpfApp4.Models
{public class MyDbContext: DbContext{public MyDbContext() : base("name=MyConnection") { }public DbSet<Student> Students { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder){base.OnModelCreating(modelBuilder);var init = new SqliteCreateDatabaseIfNotExists<MyDbContext>(modelBuilder);Database.SetInitializer(init);}}
}

4.配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --><section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /></configSections><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup><entityFramework><providers><provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /><provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" /><!--增加下面这行(复制上面一行,去掉EF6)--><provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" /></providers></entityFramework><system.data><DbProviderFactories><remove invariant="System.Data.SQLite.EF6" /><add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" /><remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories></system.data><!--增加下面的数据库连接配置信息--><connectionStrings><add name="MyConnection" connectionString="Data Source=.\mydb.db" providerName="System.Data.SQLite.EF6"/></connectionStrings>
</configuration>

5.使用方法

using System.Data.Entity.Infrastructure;
using System.Windows;
using WpfApp4.Models;namespace WpfApp4
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();using (var db = new MyDbContext()){db.Students.Add(new Student() {Name="Test1"});try{db.SaveChanges();MessageBox.Show("Success!");}catch (DbUpdateException ex){MessageBox.Show(ex.InnerException.Message);}}}}
}
  • 注意事项

(1)当前系统和sqlite 动态库版本要一致,如x86/x64

(2) 当前系统程序和使用的动态库版本要一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/946964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型强化学习的熵控制:CE-GPPO、EPO与AsyPPO技术方案对比详解

LLM的强化学习训练最近进展很快,SOTA模型在各种推理benchmark上的表现确实亮眼。但更值得关注的其实是另一条信息——从Rutgers到Alibaba再到HKUST,这些研究团队正在攻克的是RL领域的一个老大难:怎么控制好熵,同时…

拼多多一面

1、你们是使用redis去记录一下是否同步成功,那么如果在这里面redis写挂了怎么办 答:如果只是因为网络波动导致一瞬间没有数据的话,可以使用重试机制,如果是因为redis的集群宕机的话,可以使用redis的哨兵机制,同时…

10.20-10.25 总结

10.20-10.25 总结 10.20 杂题 最近的 CF 和 AT 的题目,写了三道题目。主要的启发是对于一些最优化的 dp 要多发掘性质或者是最后答案的形态,还有一些题目可以分块或者是看成一块一块的观察。 10.21 比赛 不常规的四道…

就是 CCPC2025 重庆站游记

。懂不懂什么叫超长前摇。 10.26 终于过审核了,非常感谢重庆大学的李佳老师!!

25秋周总结6

总结 这周只考了两次,剩下时间都是自习。然后这两次考联考和 NOIP 模拟,我考得都很炸,大概总结就是这段时间有点飘、有点浮躁,看着题感觉简单于是就觉得随便考没问题的。但是两次都存在遇到简单题但是没注意到性质…

20232313 2025-2026-1 《网络与系统攻防技术》实验三实验报告 - 20232313

1.实验内容基本实验内容如下:学会使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程 通过组合应…

鸭子类型,反射

什么是鸭子类型鸭子模型(Duck Typing)是编程语言类型检查中的一种设计思想,核心原则是:“如果一个东西走路像鸭子,叫起来像鸭子,那么它就是鸭子”。(是一种编程语言风格,不是一个真实存在的约束关系,而是一种普…

Verilog学习-从FPGA的角度看Uart模块

想从零移植Uboot到FPGA上,但现有的小麻雀内核栈空间是使用FPGA内部的资源,它的内存十分有限,完全无法存放Uboot代码本体,故需要添加SDRAM控制器来调用其FPGA片内的SDRAM或者外部连接的SPI NorFlash,但是改动这些东…

朝花夕拾 -- AES(1)

初识AESAES(1) 零、 前言 ​ 朝花夕拾杯中酒。从CTF开始攻击CBC模式下的加密漏洞,再到第四学期的《密码学基础》课程,时至今日,《密码工程》课程的需要以及自己对于对称密码的兴趣驱使,下定决心写下这篇笔记…

【学习笔记】构造

本文记载了一些关于构造题的学习笔记。

特殊的背包问题

特殊的背包问题 设 \(n\) 为物品个数,\(m\) 为背包容量,\(k\) 为所有物品中重量最大值。 1. 最优化问题 当 \(m\) 较大时可以应用下面的解法。先贪心,然后扔掉一些,再补上一些。 1.1 完全背包 1 先找出性价比最高的…

2025 年 10 月承烧板厂家最新推荐,实力品牌深度解析采购无忧之选!

2025 年 10 月承烧板厂家最新推荐,实力品牌深度解析采购无忧之选!引言承烧板采购中,品牌实力是品质的核心保障,也是规避采购风险的关键。据中国耐火材料行业协会 2025 年 10 月发布的《承烧板采购风险报告》显示,…

【URP】Unity[视差贴图]模拟[冰面裂缝]实践

Unity URP 冰面裂缝视差效果实现方案 冰面裂缝效果优化的URP Shader实现。该方案通过‌视差遮挡贴图(POM)‌技术增强深度表现,结合‌高度图动态控制‌实现可调节的冰缝裂痕效果。 核心特【从UnityURP开始探索游戏渲染…

2025年热门的用地预审技术服务供应商、市面上用地预审技术服务公司、行业内用地预审技术服务品牌、市场用地预审技术服务方案、2025年用地预审技术服务单位深度解析

摘要 用地预审技术服务行业随着国家土地管理政策的收紧和基础设施建设加速而蓬勃发展,2025年预计市场规模将增长15%以上,驱动因素包括城镇化进程和生态保护需求。本排名基于市场调研、用户反馈和专家评估,为用地预审…

2025年热门的用地预审技术服务供应商、市面上用地预审技术服务公司、行业内用地预审技术服务品牌、市场用地预审技术服务方案、2025年用地预审技术服务单位综合排名与分析

文章摘要 用地预审技术服务行业在国土空间规划优化和基础设施建设加速的背景下快速发展,2025年预计市场规模将增长15%以上。本文基于行业数据和用户反馈,深度评测热门供应商,并提供权威排名榜单,其中陕西丰耘甲信息…

2025年市面上母线槽品牌、市场母线槽公司、国内母线槽产品、口碑好的母线槽实力厂家、母线槽品牌排行深度评测

文章摘要 母线槽作为现代电力传输的核心设备,行业正加速向智能化、数字化转型,2025年预计市场规模将突破百亿元。本文基于权威数据分析和用户反馈,综合评估市面上主流母线槽品牌,提供客观排名和选择指南。表单数据…

2025年母线槽品牌排行、口碑好的母线槽品牌、市面上母线槽品牌、母线槽公司推荐、市场母线槽供应厂家深度解析

文章摘要 母线槽行业在2025年迎来数字化与智能化转型,随着建筑、电力和数据中心需求的增长,品牌竞争加剧。本文基于市场调研和用户口碑,为您呈现一份权威的母线槽品牌排行榜单,涵盖市面上热门品牌的核心优势与服务…

2025年市面上母线槽品牌、供应厂家、口碑产品、品牌排行及可靠品牌综合评测

文章摘要 母线槽作为现代电力配电系统的关键组件,在2025年随着数字化和智能制造的推进,行业正朝着高效、可靠、智能化的方向发展。本文基于市场调研和用户口碑,深度解析Top 10母线槽品牌,为工程采购人员提供参考。…

2025年母线槽品牌、公司、产品、供应厂家及实力厂家综合推荐榜单

文章摘要 母线槽行业随着智能电网和绿色建筑的发展,正迎来数字化、智能化转型。2025年,市场上涌现出众多品牌,本文基于用户搜索数据和行业口碑,综合评选出前十名母线槽相关企业,并提供详细榜单供参考。表单排名旨…