int _tableKeyIndex; //is used to generate unique index names #endregion Fields #region Constructors public DbModelBuilder(EntityModel entityModel, DbModelConfig config, MemoryLog log) { _entityModel = entityModel; _config = config; _log = log; _driver = _config.Driver; }
public DbModelLoader(DbSettings settings, MemoryLog log) { Settings = settings; Log = log; Driver = Settings.ModelConfig.Driver; SetupSchemas(Settings.GetSchemas()); }
public void AddDbModelChanges(DbUpgradeInfo upgradeInfo, MemoryLog log) { _upgradeInfo = upgradeInfo; _newModel = upgradeInfo.NewDbModel; _oldModel = upgradeInfo.OldDbModel; _log = log; _options = _upgradeInfo.Settings.UpgradeOptions; var driver = _newModel.Driver; _useRefIntegrity = driver.Supports(DbFeatures.ReferentialConstraints) && _newModel.Config.Options.IsSet(DbOptions.UseRefIntegrity) ; _compareTables = _options.IsSet(DbUpgradeOptions.UpdateTables); _compareIndexes = _options.IsSet(DbUpgradeOptions.UpdateIndexes); _compareViews = driver.Supports(DbFeatures.Views) && _options.IsSet(DbUpgradeOptions.UpdateViews); var usesStoredProcs = driver.Supports(DbFeatures.StoredProcedures) && _newModel.Config.Options.IsSet(DbOptions.UseStoredProcs); _compareStoredProcs = usesStoredProcs && _options.IsSet(DbUpgradeOptions.UpdateStoredProcs); _dropUnknown = _options.IsSet(DbUpgradeOptions.DropUnknownObjects); _supportsSchemas = driver.Supports(DbFeatures.Schemas); _supportsOrderInIndexes = driver.Supports(DbFeatures.OrderedColumnsInIndexes); // Nullify all obj.Peer fields to make sure we drop references to old model - mostly convenience in debugging // to allow multiple entry into this method in debugger _oldModel.ResetPeerRefs(); MatchObjectsWithPeers(); //new stuff BuildChangeList(); // Do not do it here, refs to old objects might be need by Sql generators; we will reset refs after completing update // _newModel.ResetPeerRefs() }
public PgDbModelLoader(DbSettings settings, MemoryLog log) : base(settings, log) { // Value identifying tables in information_schema.Tables view; for Postgres it is 'BASE TABLE' base.TableTypeTag = "BASE TABLE"; // Value identifying routines in information_schema.Routines view base.RoutineTypeTag = "FUNCTION"; }
public DbUpgradeManager(DataSource dataSource) { _dataSource = dataSource; _dataAccess = (DataAccessService) _dataSource.App.DataAccess; _database = _dataSource.Database; _app = _database.DbModel.EntityApp; _log = _app.ActivationLog; _timeService = _app.GetService<ITimeService>(); }
public static DbModel LoadDbModel(string schema, MemoryLog log) { if (Driver == null) SetupForTestExplorerMode(); var dbSettings = new DbSettings(Driver, DbOptions, ConnectionString); dbSettings.SetSchemas(new[] { schema }); var loader = Driver.CreateDbModelLoader(dbSettings, log); var dbModel = loader.LoadModel(); if (log.HasErrors()) Util.Throw("Model loading errors: \r\n" + log.GetAllAsText()); return dbModel; }
public static EntityMemberInfo FindEntityRefMember(this EntityInfo inEntity, string memberNameToFind, Type typeToFind, EntityMemberInfo listMember, MemoryLog log) { IList<EntityMemberInfo> refMembers; if (!string.IsNullOrEmpty(memberNameToFind)) { refMembers = inEntity.Members.FindAll(m => m.MemberName == memberNameToFind); } else refMembers = inEntity.Members.FindAll(m => m.DataType == typeToFind || m.DataType.IsAssignableFrom(typeToFind) || typeToFind.IsAssignableFrom(m.DataType)); if (refMembers.Count == 1) return refMembers[0]; //Report error var listMemberDesc = listMember.Entity.FullName + "." + listMember.MemberName; if (refMembers.Count == 0) log.Error("EntityList member {0}: could not find matching foreign key member in target entity {1}. ", listMemberDesc, inEntity.EntityType); if (refMembers.Count > 1) log.Error("EntityList member {0}: more than one matching foreign key member in target entity {1}. ", listMemberDesc, inEntity.EntityType); return null; }
public abstract DbModelLoader CreateDbModelLoader(DbSettings settings, MemoryLog log);
public override DbTypeInfo GetDbTypeInfo(Entities.Model.EntityMemberInfo member, MemoryLog log) { var typeInfo = base.GetDbTypeInfo(member, log); if(member.DataType == typeof(TimeSpan) || member.DataType == typeof(TimeSpan?)) typeInfo.PropertyToColumnConverter = CheckTimeSpanProperty; return typeInfo; }
public override DbModelLoader CreateDbModelLoader(DbSettings settings, MemoryLog log) { return new MySqlDbModelLoader(settings, log); }
public MsSqlDbModelLoader(DbSettings settings, MemoryLog log) : base(settings, log) { base.TableTypeTag = "BASE TABLE"; base.RoutineTypeTag = "PROCEDURE"; }
public AppInitEventArgs(EntityApp app, MemoryLog log, EntityAppInitStep step) { App = app; Log = log; Step = step; }
public AttributeContext(EntityModel model, MemoryLog activationLog) { Model = model; Log = activationLog; }
public SqlCeDbModelLoader(DbSettings settings, MemoryLog log) : base(settings, log) { }
public EntityCommandBuilder(EntityModel model, MemoryLog log) { _model = model; _log = log; }