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); }
//-- 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)); }
public static void GravarVersao(IAbstractDataContext dataContext, string versaoModel) { var migracaoEnt = new MigracaoEnt(_nomeEntidade, versaoModel); dataContext.Set <MigracaoEnt>().AddOrUpdate(migracaoEnt); }