gpt4 book ai didi

c# - 在 ASP.NET Core 项目中使用没有 Entity Framework 的 SQLite 数据库

转载 作者:IT王子 更新时间:2023-10-29 06:28:24 30 4
gpt4 key购买 nike

我想在 ASP.NET Core 项目中使用 SQlLite 数据库,但不使用 Entity Framework 。

我想我应该使用派生自 DbProviderFactory 的类,它迎合了 SQLLite 数据库(类似于 System.Data.SqlClient.SqlClientFactory.Instance,用于sqlServer) 但我无法找到它。

我遇到的所有示例都建议我使用 Entity Framework ,但我不想使用它。

最佳答案

你在官方仓库中有它: https://github.com/aspnet/Microsoft.Data.Sqlite

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

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

提供程序建立在 System.Data.Common 契约(Contract)之上。此协定是 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();
}
}

批处理

库添加到 native SQLite 接口(interface)的唯一真正的功能是批处理。 native 接口(interface)一次只支持编译和执行一条语句。这个库以一种应该感觉完全透明的方式实现批处理。这是使用批处理的示例。

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 适用于以下平台。

  • .NET 框架
  • 单声道
  • .NET 核心
  • .NET 原生
  • 核心CLR
  • Windows 通用

关于c# - 在 ASP.NET Core 项目中使用没有 Entity Framework 的 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652598/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com