尝试使sqlite与实体框架6一起工作。预期的应用程序将成为一个Windows窗体应用程序。这是我到目前为止所做的:
nu-get manager console:install-package sqlite.codefirst - >成功
创建了一个班级'学生'有三个属性
转到app.config,目前看起来像这样:
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<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>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<entityFramework>
<!--defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory-->
<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"/>
</providers>
</entityFramework>
<connectionStrings>
<add name="SurveyDbContext" connectionString=" data source = .\SQLite; initial catalog=TimerDB; integrated security = SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>
创建了一个继承自DbContext的类:
public class SurveyDbContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var sqliteConnectionInitializer = new SqliteCreateDatabaseIfNotExists<SurveyDbContext>(modelBuilder);
Database.SetInitializer(sqliteConnectionInitializer);
}
public DbSet<Student> Students { get; set; }
}
再次进入nu-get经理控制台: 启用的迁移
我得到一个名为&#34; Migrations&#34;的文件夹,但它实际上不包含任何迁移。因此,以下错误消息:实体框架提供程序类型&#39; System.Data.SQLite.EF6.SQLiteProviderServices,System.Data.SQLite&#39;在具有不变名称的System.Data.SQLite&#39无法加载。确保使用了程序集限定名称,并且程序集可供正在运行的应用程序使用。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。
我到底应该做什么? 非常感谢你!