关于C# 使用 sqlite 映射实体类笔记

这篇具有很好参考价值的文章主要介绍了关于C# 使用 sqlite 映射实体类笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、安装SQLite

在 nuget 搜索 System.Data.SQLite 安装

2、在 app.conifg 文件中添加如下信息

 <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

解决问题:

No Entity Framework provider found for the ADO.NET provider with invariant name ‘System.Data.SQLite’. Make sure the provider is registered in the ‘entityFramework’ section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.”

完整的 app.config 文件文章来源地址https://www.toymoban.com/news/detail-820777.html

<?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>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <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" />
      <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>
</configuration>

3、创建 SQLiteContext.cs 文件

using System.Data.Entity;
using System.Data.SQLite;

namespace dbz_desktop_ser.db
{
    public class SQLiteContext : DbContext
    {
        public SQLiteConnection DbConnection { get; set; }

        public DbSet<NetbarInfo> NetbarInfo { get; set; }

        public SQLiteContext(string connectionString) : base(new SQLiteConnection() { ConnectionString = $@"URI=file:{connectionString}" }, true)
        {
            DbConnection = (SQLiteConnection)base.Database.Connection;
        }
    }
}

4、创建 NetbarInfo.CS 文件 (数据模型)

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

namespace dbz_desktop_ser.dbModel
{
    [Table("NetbarInfo")]
    public class NetbarInfo
    {
        [Key]
        public int id { get; set; }

        [Column("name")]
        public string Name { get; set; }

    }
}

5、创建 NetbarInfoHelper.cs 文件 (增删改查)

using dbz_desktop_ser.dbModel;
using System.Linq;

namespace dbz_desktop_ser.db
{
    public class NetbarInfoHelper
    {
        private readonly SQLiteContext _context;

        public NetbarInfoHelper(string connectionString)
        {
            _context = new SQLiteContext(connectionString);
        }

        // 查询门店信息  
        public IQueryable<NetbarInfo> GetNetbarInfo()
        {
            return _context.NetbarInfo;
        }

    }
}

6、调用

using dbz_desktop_ser.db;
using System;
using System.Windows.Forms;

namespace dbz_desktop_ser.WinForm
{
    public partial class FrmMain : Form
    {
        public FrmMain()
        {
            InitializeComponent();
        }

        private void FrmMain_Load(object sender, EventArgs e)
        {

            var db = new NetbarInfoHelper("myConfig.db");
            var info = db.GetNetbarInfo();

            foreach (var item in info)
            {
                Console.WriteLine($"id:{item.id} 名称:{item.Name}");
            }

        }
    }
}

到了这里,关于关于C# 使用 sqlite 映射实体类笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在C#中使用SQLite数据库

    轻量级桌面程序数据库不太适合用SQLServer、MySQL之类的重量级数据库,嵌入式数据库更好。在对比Access、SQLite、Firebird数据库后发现SQLite较另外两个有较多优点。 环境:.NET Framework 3.5、windows11 64位、Visual Studio 2010.  C#使用SQLite需要从SQLite官网下载DLL组件。 我是windows11,64位的

    2023年04月23日
    浏览(34)
  • 【Jetpack】使用 Room 框架访问 Android 平台 SQLite 数据库 ( 导入依赖 | 定义 Entity 实体类 | 定义 Dao 数据库访问对象接口 | 定义数据库实例类 )

    对于 Room 框架 来说 , 使用 Java 语言 开发和使用 Kotlin 语言 开发 , 需要在 build.gradle 构建脚本 中进行不同的配置 , 主要有以下两个配置不同 : 应用的插件不同 ; 导入依赖库方式不同 ; 应用插件 应用的插件区别 : 如果使用 Java 语言开发 , 只需要导入 android 插件 ; 如果使用 Kotli

    2024年02月05日
    浏览(62)
  • C# JSON转为实体类和List,以及结合使用

    json 实现 json : 两个类 : 实现 json : 两个类 : 实现

    2024年02月07日
    浏览(35)
  • C#中使用list封装多个同类型对象以及组合拓展实体的应用

    在C#中,使用 ListT 集合是封装多个同类型对象的常用方式。 ListT 是泛型集合, T 是集合中元素的类型。下面是一个简单的例子,演示如何创建一个 ListT ,并向其中添加对象。 首先,假设我们有一个类,比如一个 Person 类,它有一些属性: 然后,我们可以这样使用 ListT : 上

    2024年02月22日
    浏览(43)
  • 【C# .NET 】使用 Entity Framework Core 操作sqlite数据库

    添加包 EF Core design package   NuGet Gallery | Home 使用用于 EF Core 迁移和现有数据库中的反向工程(基架)的工具需要安装相应的工具包: 可在 Visual Studio 包管理器控制台中使用的 PowerShell 工具的 Microsoft.EntityFrameworkCore.Tools 跨平台命令行工具的 dotnet-ef 和 Microsoft.EntityFramewor

    2024年02月14日
    浏览(53)
  • C#-SQLite-使用教程笔记

    微软官网资料链接(可下载文档) 教程参考链接:SQLite 教程 - SQLite中文手册 项目中对应的system.dat文件可以用SQLiteStudio打开查看 参考文档:https://d7ehk.jb51.net/202008/books/SQLite_jb51.rar 总结介绍 1、下载SQLiteStudio对数据库文件进行管理、查看 2、代码中通过NuGet添加System.Data.SQLite

    2024年02月09日
    浏览(48)
  • ES简单教程(一)创建ES映射实体对象,即索引

    声明 :本教程可能并不完善,没有一个总览的规划,各个模块都相对独立,做到哪写到哪,仅供参考,共同学习。 ES的Java映射实体类主要与ES的索引匹配,跟传统的数据库稍微有点区别:ES的索引就相当于是表,ES的文档就相当于表里的每一条数据,大致可以这么理解作为上

    2024年02月12日
    浏览(41)
  • 【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......

    SSM( S pring、 S pringMVC、 M yBatis) Apache Shiro SpringBoot 事务 :若将 N 个 数据库操作 (CRUD)放到同一个事务中,则这 N 个数据库操作最终要么全都生效,要么全都不生效 🍀 开启事务【 START TRANSACTION 】 🍀 回滚事务:若事务中的某个数据库操作失败,其他所有数据库操作都需要

    2024年02月08日
    浏览(80)
  • IDEA好用插件:MybatisX快速生成接口实体类mapper.xml映射文件

    目录  1、在Idea中找到下载插件,Install,重启Idea  2、一个测试java文件,里面有com包  3、在Idea中添加数据库 --------以Oracle数据库为例  4、快速生成entity-service-mapper方法  5、查看生成的代码  6、自动生成(增删查改)在TestMapper中快速编写代码 1、在Idea中找到下载插件,Ins

    2024年02月02日
    浏览(59)
  • 关于VS2022使用EF生成实体模型报错的问题:运行转换:System.NullReferenceException:对象引用未设置为对象的示例。

    起因: 之前版本vs2022生成EF模型一直没有问题,在更新了最新的vs2022之后,版本号17.6+,出现此问题: 正在运行转换:System.NullReferenceException:未将对象引用设置到对象的实例。 具体错误如下: 正在运行转换: System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Micro

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包