数据库连接对SQLite无效

时间:2019-02-21 03:12:43

标签: c# .net entity-framework

我刚刚将我的应用程序连接到SQLite并设法自动创建它(如果不存在)。

但是,由于某种原因未在其中创建表。当我调试时,它在各个方面向我显示了此异常:

  

System.Invalid操作异常数据库连接对无效   获取更改次数

     

数据库连接对于获取最后一个插入行ID无效

这是我的appconfig

<?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.6.1" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <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" />
      <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>
  <connectionStrings>
    <add name="AutoPrint" connectionString="data source.\AutoPrintDb.sqlite" providerName="System.Data.SQLite" />
  </connectionStrings>
</configuration>

这是我的DbContext:

public class AutoPrintDbContext : DbContext
    {
        public AutoPrintDbContext() : base("AutoPrint")
        {
            if (!Database.Exists("AutoPrint"))
            {
                Database.SetInitializer(new DropCreateDatabaseAlways<AutoPrintDbContext>());
            }
        }
        public DbSet<Programs> Programs { get; set; }
    }

编辑:

我在此处添加了例外的图片:

enter image description here

这是我的程序模型

public class Programs
{
    [Key]
    public string Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public int Fields { get; set; }
    public string Filetype { get; set; }
}

1 个答案:

答案 0 :(得分:0)

您是否更改了连接字符串?缺少等于(=)。

<add name="AutoPrint" connectionString="data source.\AutoPrintDb.sqlite" providerName="System.Data.SQLite" />

<add name="AutoPrint" connectionString="data source=.\AutoPrintDb.sqlite" providerName="System.Data.SQLite" />
相关问题