• SQLite Code配置DbConfiguration


     [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));
            }
        }  
  • 相关阅读:
    盘点国产数据库墨天轮年终排行(2021)
    python代码格式风格 PEP 8
    python 函数与方法的区别
    【Vue】从搭建环境到使用 VSCode
    如何落地业务建模(1) 业务建模、DDD
    如何落地业务建模(2) 实践DDD时常见的问题
    从落地效果看,如何基于SequoiaDB构建「PB级数据」股份制银行内容管理平台
    开张了
    远程桌面工具mobaxterm
    求职vs招聘交锋中的交流技巧 朱燚:
  • 原文地址:https://www.cnblogs.com/mschen/p/5548609.html
Copyright © 2020-2023  润新知