我将Microsoft Identity用于我的应用程序的用户管理器:
public class UserContext : IdentityDbContext<User>
{
public UserContext() : base("UserContext")
{
Database.SetInitializer(new CreateDatabaseIfNotExists<UserContext>());
}
}
它对我来说很好。 几天后,我的应用程序需要从Sqlite数据库中读取一些数据。所以我使用EF6 db-first读取这个数据库。但是当我运行我的应用程序时,引发了异常:
我不知道为什么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" />
所以,任何人都知道为什么会这样,以及如何解决它?