Nicht in der Lage, um zu bestimmen, der name des Anbieters für Anbieter Fabrik des Typs “System.Daten.Sqlite.SqliteFactory"

Will ich mit sqlite entity framework in meinem web-api-Projekt, aber es können nicht immer gut funktioniert,

hier ist meine Entwicklungs-Umgebung.

1.Visual studio 2013, .net framework 4.5

  1. sqlite Paket-version 1.0.97, installierte ich unter Pakete

    system.Daten.sqlite,
    system.Daten.sqlite.ef6,
    system.Daten.sqlite.linq

  2. EntityFramework ist 6.1.3

Hier ist die Ausnahme, dass ich

Nicht in der Lage, um zu bestimmen, der name des Anbieters für Anbieter Fabrik des Typs " System.Daten.SQLite.SQLiteFactory'. Stellen Sie sicher, dass die ADO.NET Anbieter installiert ist oder eingetragen in den application-config

Hier ist meine webconfig

HTML:

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />  <!--type="System.Data.SQLite.EF6.SQLiteProviderServices-->
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="Sqlite" connectionString="data source=&quot;D:\MyWebAPI\src\MyWeb.Api\App_Data\sqlite_test.db&quot;" providerName="System.Data.SQLite.EF6" />
  </connectionStrings>
</configuration>

Ich mich verbinden kann sqlite-Datenbank-Datei über "connect to database" im tool des visual studio, die ich auch erzeugen kann, die Entität der Verwendung von code first.

aber ich bekomme keine Daten normal

Hier ist mein code

HTML:

 public partial class Sqlite : DbContext
    {
        public Sqlite()
            : base("name=Sqlite")
        {
        }

        public virtual DbSet<AuthorizationLog> AuthorizationLogs { get; set; }
        public virtual DbSet<Checksum> Checksums { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<AuthorizationLog>()
                .Property(e => e.ClientKey)
                .IsUnicode(false);

            modelBuilder.Entity<AuthorizationLog>()
                .Property(e => e.Login)
                .IsUnicode(false);

            modelBuilder.Entity<AuthorizationLog>()
                .Property(e => e.Password)
                .IsUnicode(false);

            modelBuilder.Entity<AuthorizationLog>()
                .Property(e => e.ConnectionString)
                .IsUnicode(false);
        }
    }

HTML:

   public class ValuesController : ApiController
    {
        //GET api/values
        Sqlite ctx = new WebApi2Demo.Sqlite();
        public IEnumerable<Checksum> Get()
        {
            return ctx.Checksums;
        }
	}

InformationsquelleAutor zhnglicho | 2015-08-03
Schreibe einen Kommentar