配置
<?xml version="1.0" encoding="utf-8"?> <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
<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>
<add name="SqliteTest" connectionString="data source=E:\retail.db" providerName="System.Data.SQLite.EF6" />
core first 模式
using SQLite.CodeFirst;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
namespace WindowsFormsApp1
{
public class SqliteDbContext : DbContext
{
//您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
//使用“SqliteDbContext”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
//“WindowsFormsApp1.SqliteDbContext”数据库。
//
//如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“SqliteDbContext”
//连接字符串。
public SqliteDbContext()
: base("name=SqliteTest")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var intit = new SqliteCreateDatabaseIfNotExists<SqliteDbContext>(modelBuilder);
Database.SetInitializer(intit);
Database.SetInitializer(new SqliteDropCreateDatabaseWhenModelChanges<SqliteDbContext>(modelBuilder));
modelBuilder.Entity<MyEntity>();
base.OnModelCreating(modelBuilder);
}
//为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First 模型
//的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109。
public virtual DbSet<MyEntity> MyEntities { get; set; }
}
public class MyEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public DateTime Time { get; set; }
}
}
引用的nuget
尽可能版本选择高一点,否则没有SqliteDropCreateDatabaseWhenModelChanges 这个方法将会很痛苦。
以上就是主要代码