Ejemplo n.º 1
0
        public static bool IsGerarVersao(IAbstractDataContext dataContext, Type[] types, out string versaoModel)
        {
            var migracaoEnt = new MigracaoEnt {
                Codigo = _nomeEntidade
            };
            var versaoBase = dataContext.Set <MigracaoEnt>().GetById(migracaoEnt)?.Versao;

            versaoModel = GetVersaoModel(types);

            return(versaoModel.CompareTo(versaoBase) != 0);
        }
Ejemplo n.º 2
0
        //-- create or alter

        public void CreateOrAlter(Type type)
        {
            //-- tabela

            var tabela = type.GetTabela().Nome;

            //-- versao base

            var migracaoEnt = new MigracaoEnt {
                Codigo = tabela
            };
            var versaoBase = _dbSet.GetById(migracaoEnt)?.Versao;

            //-- versao model

            var versaoModel = GetMd5(type);

            if (versaoModel.CompareTo(versaoBase) == 0)
            {
                return;
            }

            //-- create or alter

            try
            {
                if (string.IsNullOrWhiteSpace(versaoBase))
                {
                    Create(type);
                }
                else
                {
                    Alter(type);
                }
            }
            catch
            {
                Alter(type);
            }

            //-- foreigns

            try
            {
                var dropForeigns = _tipoDatabase.GetListaDeDropForeignCmd(type);
                if (dropForeigns.Any())
                {
                    _dropForeigns.AddRange(dropForeigns);
                }

                var foreigns = _tipoDatabase.GetListaDeForeignCmd(type);
                if (foreigns.Any())
                {
                    _foreigns.AddRange(foreigns);
                }
            }
            catch (Exception ex)
            {
                LogErro?.Invoke(ex, type);
            }

            //-- salvar versao base

            _dbSet.AddOrUpdate(new MigracaoEnt(tabela, versaoModel));
        }
Ejemplo n.º 3
0
        public static void GravarVersao(IAbstractDataContext dataContext, string versaoModel)
        {
            var migracaoEnt = new MigracaoEnt(_nomeEntidade, versaoModel);

            dataContext.Set <MigracaoEnt>().AddOrUpdate(migracaoEnt);
        }