public void CompareSuppressViaViaAddIgnoreCompareLog() { //SETUP var options = this.CreateUniqueClassOptions <BookContext>(); using var context = new BookContext(options); context.Database.EnsureClean(); var filepath = TestData.GetFilePath("AddViewToBookContext.sql"); context.ExecuteScriptFileInTransaction(filepath); var config = new CompareEfSqlConfig { //This tells EfSchemaCompare to look at ALL tables and views TablesToIgnoreCommaDelimited = "" }; //This will ignore any Table or View that is not accessed by EF Core config.AddIgnoreCompareLog(new CompareLog(CompareType.Table, CompareState.ExtraInDatabase, null)); var comparer = new CompareEfSql(config); //ATTEMPT var hasErrors = comparer.CompareEfWithDb(context); //VERIFY hasErrors.ShouldBeFalse(comparer.GetAllErrors); }
public void TestApplyScriptTwoCommandsToDatabaseOk() { //SETUP var options = this.CreateUniqueClassOptions <BookContext>(); var filepath = TestData.GetFilePath("Script02 - Add two rows to Authors table.sql"); using (var context = new BookContext(options)) { context.CreateEmptyViaWipe(); //ATTEMPT context.ExecuteScriptFileInTransaction(filepath); //VERIFY context.Authors.Count().ShouldEqual(2); } }
public void TestApplyScriptOneCommandToDatabaseOk() { //SETUP var options = this.CreateUniqueClassOptions <BookContext>(); var filepath = TestData.GetFilePath("Script01 - Add row to Authors table.sql"); using (var context = new BookContext(options)) { context.Database.EnsureClean(); //ATTEMPT context.ExecuteScriptFileInTransaction(filepath); //VERIFY context.Authors.Count().ShouldEqual(1); } }
public void TestApplyScriptExampleOk() { //SETUP var options = this .CreateUniqueClassOptions <BookContext>(); var filepath = TestData //#A .GetFilePath( //#A "AddUserDefinedFunctions.sql"); //#A using (var context = new BookContext(options)) { if (context.CreateEmptyViaWipe()) //#B { context //#C .ExecuteScriptFileInTransaction( //#C filepath); //#C } } }
public void GetBookContextDatabaseModelWithView() { //SETUP var options = this.CreateUniqueClassOptions <BookContext>(); using var context = new BookContext(options); context.Database.EnsureClean(); var filepath = TestData.GetFilePath("AddViewToBookContext.sql"); context.ExecuteScriptFileInTransaction(filepath); var serviceProvider = new SqlServerDesignTimeServices().GetDesignTimeProvider(); var factory = serviceProvider.GetService <IDatabaseModelFactory>(); //ATTEMPT var model = factory.Create(context.Database.GetConnectionString(), new DatabaseModelFactoryOptions(new string[] { }, new string[] { })); //VERIFY model.ShouldNotBeNull(); model.Tables.Select(x => x.Name).OrderBy(x => x).ToArray() .ShouldEqual(new[] { "Authors", "BookAuthor", "Books", "BookTag", "MyView", "PriceOffers", "Review", "Tags" }); }