Unable to determine the provider name for provider factory of type ‘System.Data.SQLite.SQLiteFactory‘. Make sure that the ADO.NET provider is installed or registered in the application config.
解决方案:
1. EntityFramework.dll 与EntityFramework.SqlServer.dll使用net40的DLL,而不是使用net45的DLL, 在项目文件手动使用
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.2.0\lib\net40\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.2.0\lib\net40\EntityFramework.SqlServer.dll</HintPath>
</Reference>
2. No Entity Framework provider found for the ADO.NET provider with invariant name ‘System.Data.SQLite‘. Make sure the provider is registered in the ‘entityFramework‘ section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
解决方案:
配置文件去掉:
>>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" />
以上 转自 https://blog.****.net/egoily/article/details/79611976
3. System.Data.Entity.ModelConfiguration.ModelValidationException:“One or more validation errors were detected during model generation:
SQLiteTest.Persion: : EntityType ‘Persion‘ has no key defined. Define the key for this EntityType.
Persions: EntityType: EntitySet ‘Persions‘ is based on type ‘Persion‘ that has no keys defined.
实体类没有主键,在主建上加特性 [System.ComponentModel.DataAnnotations.KeyAttribute]