1.新建实体类
public class Config
{
public string name { get; set; }
public string value { get; set; }
}
2.新建上下文
public class QjContext : DbContext
{
#region 构造函数
public QjContext() : base(DbConfig.ConnectionString)
{
}
protected QjContext(string nameOrConnectionString) : base(nameOrConnectionString)
{
}
#endregion
/* --------------- 注册实体类 --------------- */
public virtual DbSet<Config> Config { get; set; }
}
3.新建配初始化类
public class QjContextInitializer : DropCreateDatabaseIfModelChanges<QjContext>
{
public static void Init()
{
Database.SetInitializer(new QjContextInitializer());
}
}
4.在要调用的主程序app.config中增加配置字段
<entityFramework>
<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.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" />
<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" />
</DbProviderFactories>
</system.data>

5.调用方法
[TestMethod]
public void EF模型创建测试()
{
DbConfig.Instance.Init();
if (Database.Exists(DbConfig.DBName))
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<QjContext>());
}
else
{
Database.SetInitializer(new CreateDatabaseIfNotExists<QjContext>());
}
var path = DbConfig.ConnectionString;
var connStr = ConfigCommand.ConnectionString;
Assert.IsTrue(path == connStr);
}
其他引用以及具体connectstring等管理不过多阐述,请自行实现
这篇博客详细介绍了如何在.NET 4.5.2环境中配置并使用SQLite数据库,包括创建实体类、定义上下文、初始化配置,以及在app.config文件中设置配置字段,最后演示了调用方法的操作步骤。其他连接字符串和管理细节则需要读者自己实现。
1037

被折叠的 条评论
为什么被折叠?



