SqliteException(Sqlite异常错误):SQLite错误1:“无此表:病人的-我似乎无法解决这个问题

mu0hgdu0  于 2022-11-30  发布在  SQLite
关注(0)|答案(2)|浏览(422)

我正在寻找如何绕过这个问题。我很想从头开始。这是非常烦人的,我已经到处寻找在线如何解决这个问题,有人能帮助和回答这个问题在最简单的条款可能。我确实删除了我原来的数据库,并点击建立一个新的,但当我试图创建一个基本的信息形式,我击中了下面的错误。
我试着运行一个命令行我在youtube上看到有人在命令行上做更新数据库,但它说没有这样的东西存在
显示的确切错误如下:
SqliteException(Sqlite异常错误):SQLite错误1:“无此表:病人的
然后显示的红色是这样的:

MS.Data.Services.PatientHutServiceDb.GetPatientByEmail(string email) in 
PatientHutServiceDb.cs
+
         return db.Patients.FirstOrDefault(e => e.EmailAddress == email);
MMS.Data.Services.PatientHutServiceDb.AddPatient(Patient u) in PatientHutServiceDb.cs
 +
        var existing = GetPatientByEmail(u.EmailAddress); //Check if user has same email 
address when creating a new user 
MMS.Web.Controllers.PatientController.Create(Patient u) in PatientController.cs
+
            svc.AddPatient(u);
lambda_method35(Closure , object , object[] )

我觉得我需要更新数据库,但我不知道如何做到这一点。
到目前为止,我拥有的代码是:

DbContext: 

namespace MMS.Data.Repositories

{公共类PatientHutDbContext:数据库上下文{公共数据库集患者{ get; set; }公共数据库集预订{ get;设置; }

// Could use SqlServer using connection below if installed
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder               
            /** use simple logging to log the sql commands issued by entityframework **/ 
            //.LogTo(Console.WriteLine, LogLevel.Information)
            //.EnableSensitiveDataLogging()
            .UseSqlite("Filename=Patients.db"); //Double check this !!!!!!!!!!!!!!!
    }

    public void Initialise() 
    {
        Database.EnsureDeleted();
        Database.EnsureCreated();
    }
}

}
startup I文件中,我有:

namespace MMS.Web
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {           

            services.AddControllersWithViews();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider provider)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();             
                           
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            //app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}
relj7zay

relj7zay1#

我确实删除了我原来的数据库,并点击构建创建一个新的,但当我试图创建一个基本形式的信息,我击中了下面的错误。
根据您的描述,我假设应用程序已经安装了相关的EF Core包,上下文已经指定了数据模型中包含哪些实体,并分配了数据库连接字符串。然后,下一步应该使用migrations创建基于模型的数据库。
如果您使用的是Visual Studio 2019,请尝试使用以下命令:

Add-Migration InitialCreate
Update-Database

Add-Migration命令构建迁移以创建模型的初始表集。
Update-Database命令创建数据库并将新迁移应用于该数据库。
如果您使用的是.Net Core CLI,命令应如下所示:

dotnet ef migrations add InitialCreate
dotnet ef database update

在数据库和数据表创建成功之后,您可以通过DBContext执行查询语句。

gijlo24d

gijlo24d2#

遵循这些步骤会有很大帮助。
1.构建项目以查看是否会出现任何影响迁移过程的错误。
1.确保已将默认项目设置为要在程序包管理器控制台上执行迁移命令的项目。(https://i.stack.imgur.com/LUB3Y.jpg
1.然后运行以下命令:
Add-Migration InitialMigration
Update-Database

相关问题