环境:VS2019
,.NET 4.8
,EF 6
,SQLite
,WPF App (.NET Framework)
我正在按照此Microsoft official tutorial创建一个使用SQLite的代码优先应用程序,名为WPF_EF6
。使用下面显示的配置,我得到一个错误。
问题:我在这里可能想念什么?以及如何解决该问题?应用程序可以正常编译,但会抛出此运行时错误:
ConfigurationErrorsException:无法识别的配置节entityFramework。 (C:\ DotNet2019 \ WPF \ WPF_EF6 \ bin \ Debug \ WPF_EF6.exe.Config第22行)
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<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" />
<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="SqlLiteContext"
connectionString="Data Source=|DataDirectory|MySQLiteDb.sqlite"
providerName="System.Data.SQLite" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="System.Data.SQLite.EF6"
type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite"
type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
</configuration>
MyDbContex.cs:
namespace WPF_EF6.Model
{
public class MyDbContex : DbContext
{
public MyDbContex() : base("MySQLiteDb")
{
}
public DbSet<MyObj> MyObjs { get; set; }
}
}
[当您安装System.Data.SQLite.EF6
Nuget软件包时,App.config
中有一些更改目前尚不存在。确切地说,您缺少<configSections>
元素。
您的App.config
应该这样开始:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<!-- ... -->