我遇到了一个问题,该代码无法找到我的现有Sqlite数据库,该数据库与调用它的此代码位于同一文件夹中。我得到的错误是“ SQLite错误1表不存在”。我知道该表存在,它只是无法找到路径。我究竟做错了什么?
注意:我不是先创建代码的Sqlite数据库。这将打开一个现有的Sqlite数据库
数据库上下文代码
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyWidget.Domain.Data
{
public static class MyWidgetService
{
public static void GetAll()
{
using var context = new MyWidgetContext();
if (context.Translations.Any())
{
var data = context.Widgets.ToList();
foreach (var widget in data)
{
Console.WriteLine(widget.ProductName);
}
}
else
{
Console.WriteLine("No widgets found");
}
}
}
}
**数据库服务代码
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Microsoft.EntityFrameworkCore;
namespace MyWidget.Domain.Data
{
public class MyWidgetContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(connectionString: "Filename=./MyWidgetDB.db");
}
public DbSet<WidgetData> Widgets { get; set; }
}
public class WidgetData
{
public int Id { get; set; }
public string ProductName { get; set; }
}
}
我决定去另一个方向,并使用Dapper和System.Data.Sqlite.Core。蒂姆·科里(Tim Corey)的这段视频完美地解释了如何实施:]
https://www.youtube.com/watch?v=ayp3tHEkRc0
此方法非常有效,正在我的GitHub项目中使用它: