[DbConfigurationType(
typeof(SQLiteConfiguration))]
public partial class rsapiEntities : DbContext
{
public rsapiEntities()
: base(
"name=rsapiEntities")
{
Database.SetInitializer<rsapiEntities>(
new MigrateDatabaseToLatestVersion<rsapiEntities, APIDbMigrationsConfiguration>
());
//this.Configuration.AutoDetectChangesEnabled = false;//关闭自动跟踪对象的属性变化
this.Configuration.LazyLoadingEnabled =
false;
//关闭延迟加载
//this.Configuration.ProxyCreationEnabled = false; //关闭代理类
//this.Configuration.ValidateOnSaveEnabled = false; //关闭保存时的实体验证
//this.Configuration.UseDatabaseNullSemantics = true; //关闭数据库null比较行为
//((IObjectContextAdapter) this).ObjectContext.ContextOptions.LazyLoadingEnabled = true;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>
();
//dynamically load all configuration
modelBuilder.Configurations.AddFromAssembly(
typeof(rsapiEntities).Assembly);
//...or do it manually below. For example,
//modelBuilder.Configurations.Add(new PartnersMap());
//modelBuilder.Configurations.Add(new EndpointPolicyMap());
//modelBuilder.Configurations.Add(new ThrottlePolicyMap());
//throw new UnintentionalCodeFirstException();
}
public virtual DbSet<partners> partners {
get;
set; }
public virtual DbSet<endpoint_policy> endpoint_policy {
get;
set; }
public virtual DbSet<throttle_policy> throttle_policy {
get;
set; }
}
internal sealed class APIDbMigrationsConfiguration : DbMigrationsConfiguration<rsapiEntities>
{
public APIDbMigrationsConfiguration()
{
AutomaticMigrationsEnabled =
true;
AutomaticMigrationDataLossAllowed =
true;
}
}
public class SQLiteConfiguration : DbConfiguration
{
public SQLiteConfiguration()
{
SetProviderFactory("System.Data.SQLite", SQLiteFactory.Instance);
SetProviderFactory("System.Data.SQLite.EF6", SQLiteProviderFactory.Instance);
Type t = Type.GetType(
"System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6");
FieldInfo fi = t.GetField(
"Instance", BindingFlags.NonPublic |
BindingFlags.Static);
SetProviderServices("System.Data.SQLite", (System.Data.Entity.Core.Common.DbProviderServices)fi.GetValue(
null));
}
}
转载于:https://www.cnblogs.com/mschen/p/5548609.html