public void Generic_AsStreaming_can_be_used_directly_on_DbSet() { using (var context = new F1Context()) { var drivers = context.Drivers; var count = 0; foreach (var driver in drivers) { Assert.NotNull(driver); Assert.True(context.Database.Connection.State == ConnectionState.Closed); count++; } Assert.Equal(42, count); count = 0; foreach (var driver in drivers.AsStreaming()) { Assert.NotNull(driver); Assert.True(context.Database.Connection.State == ConnectionState.Open); count++; } Assert.Equal(42, count); } }
public void Non_generic_ObjectSet_AsStreaming_can_be_used_directly_on_generic_ObjectSet() { using (var context = new F1Context()) { var drivers = (IQueryable)CreateObjectSet <Driver>(context); var count = 0; foreach (var driver in drivers) { Assert.NotNull(driver); Assert.True(context.Database.Connection.State == ConnectionState.Closed); count++; } Assert.Equal(42, count); count = 0; foreach (var driver in drivers.AsStreaming()) { Assert.NotNull(driver); Assert.True(context.Database.Connection.State == ConnectionState.Open); count++; } Assert.Equal(42, count); } }
public void ObjectSet_AsStreaming_can_be_used_before_the_rest_of_the_query() { using (var context = new F1Context()) { var drivers = CreateObjectSet <Driver>(context); var count = 0; foreach (var winner in drivers.Where(d => d.Wins > 20)) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Closed); count++; } Assert.Equal(2, count); count = 0; foreach (var winner in drivers.Where(d => d.Wins > 20).AsStreaming()) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Open); count++; } Assert.Equal(2, count); } }
public void Non_generic_AsStreaming_can_be_used_directly_on_DbQuery() { using (var context = new F1Context()) { var expression = context.Drivers.Where(d => d.Wins > 20).Expression; var query = (DbQuery)((IQueryable)context.Set(typeof(Driver))).Provider.CreateQuery(expression); var count = 0; foreach (var winner in query) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Closed); count++; } Assert.Equal(2, count); count = 0; foreach (var winner in query.AsStreaming()) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Open); count++; } Assert.Equal(2, count); } }
public void Generic_ObjectSet_AsStreaming_can_be_used_on_IQueryable() { using (var context = new F1Context()) { var winners = CreateObjectSet <Driver>(context).Where(d => d.Wins > 20); var count = 0; foreach (var winner in winners) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Closed); count++; } Assert.Equal(2, count); count = 0; foreach (var winner in winners.AsStreaming()) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Open); count++; } Assert.Equal(2, count); } }
private static void VerifyTeam(F1Context context, Team team, IDictionary <int, Team> teamsMap) { var trackedTeam = context.Teams.Find(team.Id); Assert.Equal(trackedTeam.Constructor, team.Constructor); Assert.Equal(trackedTeam.Name, team.Name); Assert.Equal(trackedTeam.Poles, team.Poles); Assert.Equal(trackedTeam.Principal, team.Principal); Assert.Equal(trackedTeam.Races, team.Races); Assert.Equal(trackedTeam.Tire, team.Tire); Assert.Equal(trackedTeam.Victories, team.Victories); Assert.Equal(trackedTeam.ConstructorsChampionships, team.ConstructorsChampionships); Assert.Equal(trackedTeam.DriversChampionships, team.DriversChampionships); Assert.Equal(trackedTeam.FastestLaps, team.FastestLaps); if (teamsMap != null) { if (teamsMap.TryGetValue(team.Id, out var mappedTeam)) { Assert.Same(team, mappedTeam); } teamsMap[team.Id] = team; } }
public static bool SupplierExist(string SupplierName) { using (F1Context context = new F1Context()) { return context.Suppliers.ToList().Exists(i => i.Name == SupplierName); } }
public static bool ResultHasRace(string RaceName) { using (F1Context context = new F1Context()) { return context.RaceResults.ToList().Exists(i => i.Race.RaceName == RaceName); } }
public void DbSet_Local_from_generic_set_is_same_as_from_non_generic_set() { using (var context = new F1Context()) { Assert.Same(context.Drivers.Local, context.Set(typeof(Driver)).Local); } }
/// <summary> /// Returns true if any driver have a relation to the team specified. /// </summary> /// <param name="teamName"></param> /// <returns></returns> public static bool DriverHasTeam(string teamName) { using (F1Context context = new F1Context()) { return context.Drivers.ToList().Exists(i => i.Team.Name == teamName); } }
public static bool ResultHasDriver(string FirstName, string LastName) { using (F1Context context = new F1Context()) { return context.RaceResults.ToList().Exists(i => i.Driver.FirstName == FirstName && i.Driver.LastName == LastName); } }
public void Entity_added_to_navigation_property_binding_list_is_added_to_context_after_DetectChanges() { using (var context = new F1Context()) { var ferrari = context.Teams.Include(t => t.Drivers).Single(t => t.Id == Team.Ferrari); var navBindingList = ((IListSource)ferrari.Drivers).GetList(); var localDrivers = context.Drivers.Local; var larry = new Driver { Id = -1, Name = "Larry David", TeamId = Team.Ferrari, CarNumber = 13 }; navBindingList.Add(larry); Assert.False(localDrivers.Contains(larry)); GetObjectContext(context).DetectChanges(); Assert.True(localDrivers.Contains(larry)); Assert.Same(larry, context.Drivers.Find(-1)); } }
protected void SetupContext(F1Context context) { var drivers = context.Drivers; drivers.Load(); foreach (var driver in drivers.Local.Where(d => d.TeamId == DeletedTeam).ToList()) { drivers.Remove(driver); } foreach (var driver in drivers.Local.Where(d => d.TeamId == ModifedTeam).ToList()) { driver.Races = 5; } drivers.Add( new Driver { Name = "Pedro de la Rosa", TeamId = AddedTeam, CarNumber = 13 }); drivers.Add( new Driver { Name = "Kamui Kobayashi", TeamId = AddedTeam, CarNumber = null }); }
public static bool TeamExist(string TeamName) { using (F1Context context = new F1Context()) { return context.Teams.ToList().Exists(i => i.Name == TeamName); } }
public void Generic_AsStreaming_can_be_used_directly_on_DbQuery() { using (var context = new F1Context()) { var winners = (DbQuery <Driver>)context.Drivers.Where(d => d.Wins > 20); var count = 0; foreach (var winner in winners) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Closed); count++; } Assert.Equal(2, count); count = 0; foreach (var winner in winners.AsStreaming()) { Assert.NotNull(winner); Assert.True(context.Database.Connection.State == ConnectionState.Open); count++; } Assert.Equal(2, count); } }
public static bool DriverExist(string FirstName, string LastName) { using (F1Context context = new F1Context()) { return context.Drivers.ToList().Exists(i => i.FirstName == FirstName && i.LastName == LastName); } }
public void Creating_DbEntityEntry_for_entity_type_that_is_not_in_the_model_throws() { using (var context = new F1Context()) { Assert.Throws <InvalidOperationException>(() => context.Entry(new Category())).ValidateMessage( "DbSet_EntityTypeNotInModel", typeof(Category).Name); } }
public void DbSet_Local_ToBindingList_is_cached_on_the_set() { using (var context = new F1Context()) { var bindingList = context.Drivers.Local.ToBindingList(); Assert.Same(bindingList, context.Drivers.Local.ToBindingList()); } }
private void DbSet_Local_is_cached_on_the_set_implementation(Func <F1Context, IList> getLocal) { using (var context = new F1Context()) { var local = getLocal(context); Assert.Same(local, getLocal(context)); } }
public F1Context CreateF1Context(string connectionString) { var options = new DbContextOptions() .UseModel(AddStoreMetadata(F1Context.CreateModel())) .UseSqlServer(connectionString); return(new F1Context(_serviceProvider, options)); }
private static void AddEntities(F1Context context) { foreach (var engineSupplier in new List <EngineSupplier> { new() { Name = "Mercedes" }, new() { Name = "Renault" }, new() { Name = "Ferrari" }, new() { Name = "Cosworth" } })
public void Non_generic_ObjectSet_AsNoTracking_can_be_used_directly_on_generic_ObjectSet() { using (var context = new F1Context()) { var drivers = ((IQueryable)CreateObjectSet <Driver>(context)).AsNoTracking().ToList <Driver>(); Assert.True(drivers.Count > 0); Assert.Equal(0, context.ChangeTracker.Entries().Count()); } }
public void ObjectSet_AsNoTracking_can_be_used_after_the_rest_of_the_query() { using (var context = new F1Context()) { var drivers = CreateObjectSet <Driver>(context).Where(d => d.Wins > 0).AsNoTracking().ToList(); Assert.Equal(13, drivers.Count); Assert.Equal(0, context.ChangeTracker.Entries().Count()); } }
public void Generic_AsNoTracking_can_be_used_on_IQueryable() { using (var context = new F1Context()) { var webber = context.Drivers.Where(d => d.Name == "Mark Webber").AsNoTracking().Single(); Assert.Equal("Mark Webber", webber.Name); Assert.Equal(0, context.ChangeTracker.Entries().Count()); } }
public void AsNoTracking_can_be_used_before_the_rest_of_the_query() { using (var context = new F1Context()) { var drivers = context.Drivers.AsNoTracking().Where(d => d.Wins > 0).ToList(); Assert.Equal(13, drivers.Count); Assert.Equal(0, context.ChangeTracker.Entries().Count()); } }
public void Lazy_loading_entity_collection_works_on_modified_entity() { using (var context = new F1Context()) { var team = context.Teams.FirstOrDefault(); team.Constructor = "Fooblearius Fooblebar"; Assert.True(team.Drivers.Count > 0); } }
public void Non_generic_AsNoTracking_can_be_used_directly_on_DbSet() { using (var context = new F1Context()) { var drivers = context.Set(typeof(Driver)).AsNoTracking().ToList <Driver>(); Assert.True(drivers.Count > 0); Assert.Equal(0, context.ChangeTracker.Entries().Count()); } }
public void Entities_materialized_into_context_are_reflected_in_local_binding_list() { using (var context = new F1Context()) { var bindingList = context.Drivers.Local.ToBindingList(); context.Drivers.Where(d => d.TeamId == UnchangedTeam).Load(); Assert.Equal(UnchangedCount, bindingList.Count); } }
public override F1Context CreateContext(SqliteTestStore testStore) { var optionsBuilder = new EntityOptionsBuilder(); optionsBuilder.UseSqlite(testStore.Connection); var context = new F1Context(_serviceProvider, optionsBuilder.Options); context.Database.AsRelational().Connection.UseTransaction(testStore.Transaction); return(context); }
public override F1Context CreateContext(SqlServerTestStore testStore) { var options = new DbContextOptions() .UseSqlServer(testStore.Connection); var context = new F1Context(_serviceProvider, options); context.Database.AsRelational().Connection.UseTransaction(testStore.Transaction); return(context); }
public void Lazy_loading_of_entity_reference_does_not_work_on_detached_entity() { using (var context = new F1Context()) { var team = context.Teams.FirstOrDefault(); var objectContext = ((IObjectContextAdapter)context).ObjectContext; objectContext.Detach(team); Assert.Null(team.Engine); } }
public override F1Context CreateContext(NpgsqlTestStore testStore) { var optionsBuilder = new DbContextOptionsBuilder() .UseNpgsql(testStore.Connection, b => b.ApplyConfiguration()) .UseInternalServiceProvider(_serviceProvider); var context = new F1Context(optionsBuilder.Options); context.Database.UseTransaction(testStore.Transaction); return(context); }
public void Lazy_loading_entity_collection_does_not_work_on_deleted_entity() { using (var context = new F1Context()) { var team = context.Teams.FirstOrDefault(); var objectContext = ((IObjectContextAdapter)context).ObjectContext; objectContext.DeleteObject(team); Assert.Equal(0, team.Drivers.Count); } }
public ActionResult AddToDetail(int?ID = 1) { F1Context db = new F1Context(); Team t = db.Teams.Find(ID); DetailTeam myTeam = DetailTeam.GetCart(Session["MyTeam"]); myTeam.AddItem(t.ID, t); Session["MyTeam"] = myTeam; //return Redirect("/Home/Catalog/?restoreFilter=true"); return(Redirect("/Home/Detail")); }
public override F1Context CreateContext(SqlServerTestStore testStore) { var optionsBuilder = new DbContextOptionsBuilder() .UseSqlServer(testStore.Connection) .UseInternalServiceProvider(_serviceProvider); var context = new F1Context(optionsBuilder.Options); context.Database.UseTransaction(testStore.Transaction); return(context); }
public void Load_executes_query_on_DbQuery() { using (var context = new F1Context()) { context.Drivers.Where(d => d.TeamId == UnchangedTeam).Load(); Assert.Equal( UnchangedCount, GetObjectContext(context).ObjectStateManager.GetObjectStateEntries(~EntityState.Detached). Count()); } }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { using (F1Context context = new F1Context()) { if (context.Tracks.ToList().Exists(i => i.TrackName == (string)value)) { return context.Tracks.ToList().Find(i => i.TrackName == (string)value); } else { return new Track() { TrackName = (string)value }; } } }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { var str = (string)value; if (str.Contains(' ')) { var strsplit = str.Split(' '); using (F1Context context = new F1Context()) { if (ValidateHelper.DriverExist(strsplit[0], strsplit[1])) { return context.Drivers.ToList().Find(i => i.FirstName == strsplit[0] && i.LastName == strsplit[1]); } else { return new Driver() { FirstName = strsplit[0], LastName = strsplit[1] }; } } } else { return new Driver() { FirstName = str }; } }
public static bool TrackExist(string TrackName) { using (F1Context context = new F1Context()) { return context.Tracks.ToList().Exists(i => i.TrackName == TrackName); } }