C#SQLite和WebApi身份不能一起工作

时间:2016-06-29 13:00:03

标签: c# sqlite

我将Microsoft Identity用于我的应用程序的用户管理器:

public class UserContext : IdentityDbContext<User>
{
    public UserContext() : base("UserContext")
    {
        Database.SetInitializer(new CreateDatabaseIfNotExists<UserContext>());
    }
}

它对我来说很好。 几天后,我的应用程序需要从Sqlite数据库中读取一些数据。所以我使用EF6 db-first读取这个数据库。但是当我运行我的应用程序时,引发了异常:

enter image description here

我不知道为什么Identity UserContext告诉我他尝试加载Sqlite提供程序失败,UserContext的providerName的连接字符串是System.Data.SqlClient:

<connectionStrings>
    <add name="UserContext" connectionString="Data Source=.;Initial Catalog=DB1;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

我的配置文件设置:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="mssqllocaldb" />
        </parameters>
    </defaultConnectionFactory>
    <providers>
        <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
        <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
</entityFramework>
<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SqlClient"/>
        <add name="SQL Client EF6" invariant="System.Data.SqlClient" description=".NET Framework Data Provider (Entity Framework 6)" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        <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" />
        <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>

我尝试将System.Data.SqlClient添加到entityFramework部分,也是同样的错误。

<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />

所以,任何人都知道为什么会这样,以及如何解决它?

0 个答案:

没有答案