在ASP中使用无实体框架的sqlite数据库.. NET核心项目

本文关键字:sqlite 数据库 NET 项目 核心 框架 实体 ASP | 更新日期: 2023-09-27 18:18:27

我想在ASP中使用sqlite数据库。. NET Core项目,但不使用实体框架。

我认为我应该使用一个从DbProviderFactory &它迎合了sql数据库(类似于System.Data.SqlClient.SqlClientFactory)。实例用于sqlServer),但我找不到它。

我遇到的所有例子都建议我使用实体框架,但我不想使用它

在ASP中使用无实体框架的sqlite数据库.. NET核心项目

你有它的官方回购:https://github.com/aspnet/Microsoft.Data.Sqlite

下面是一个例子:http://www.bricelam.net/2015/04/29/sqlite-on-corefx.html

编辑:添加链接内容,以防将来它消失。

提供者构建在System.Data.Common契约之上。该契约是ADO的一个非常小的子集。. NET提供程序模型。对于熟悉ADO.NET的人来说,使用提供程序应该是非常自然的。

using (var connection = new SqliteConnection("" +
    new SqliteConnectionStringBuilder
    {
        DataSource = "hello.db"
    }))
{
    connection.Open();
    using (var transaction = connection.BeginTransaction())
    {
        var insertCommand = connection.CreateCommand();
        insertCommand.Transaction = transaction;
        insertCommand.CommandText = "INSERT INTO message ( text ) VALUES ( $text )";
        insertCommand.Parameters.AddWithValue("$text", "Hello, World!");
        insertCommand.ExecuteNonQuery();
        var selectCommand = connection.CreateCommand();
        selectCommand.Transaction = transaction;
        selectCommand.CommandText = "SELECT text FROM message";
        using (var reader = selectCommand.ExecuteReader())
        {
            while (reader.Read())
            {
                var message = reader.GetString(0);
                Console.WriteLine(message);
            }
        }
        transaction.Commit();
    }
}

配料

库添加到本地SQLite接口的唯一真正特性是批处理。本机接口一次只支持编译和执行一条语句。这个库以一种完全透明的方式实现批处理。下面是一个使用批处理的例子。

using (var connection = new SqliteConnection("Data Source=hello.db"))
{
    var command = connection.CreateCommand();
    command.CommandText =
        "UPDATE message SET text = $text1 WHERE id = 1;" +
        "UPDATE message SET text = $text2 WHERE id = 2";
    command.Parameters.AddWithValue("$text1", "Hello");
    command.Parameters.AddWithValue("$text2", "World");
    connection.Open();
    command.ExecuteNonQuery();
}

平台:

目前,Microsoft.Data.Sqlite支持以下平台:

  • 。净框架
  • Mono
  • 。网络核心
  • 。网络原生
  • CoreCLR
  • 窗口普遍