您的位置:首页 > 数据库

SQLite Code配置DbConfiguration

2016-06-01 09:54 423 查看
[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));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: