public EventWithMarketEntity GetEvent(int eventId, int marketCount) { var ev = _context.Set<EventWithMarketEntity>() .Where(e => e.Id == eventId) .Select(e => new { Event = e, Markets = e.Markets.OrderBy(m => m.Id).Take(marketCount), Types = e.Markets.Select(m => m.Type) // Load the market types, alternative for Include }) .FirstOrDefault(); if (ev == null) return null; var eventWithMarket = new EventWithMarketEntity { Id = ev.Event.Id, Name = ev.Event.Name, Timestamp = ev.Event.Timestamp, Markets = ev.Markets.ToList() }; return eventWithMarket; }
public void Setup() { EntityFrameworkProfiler.Initialize(); var context = new SportsbookContext();//_connectionString); var matchWinner = new MarketTypeEntity { Name = "Match Winner" }; var newEvent = new EventWithMarketEntity { Name = "Manchester United - Real Madrid", }; var newMaket = new MarketEntity { Type = matchWinner, Event = newEvent }; context.Entry(newMaket).State = EntityState.Added; var result = context.SaveChanges(); Assert.IsTrue(result > 0); }
public void SavingWithNavigationalProperty() { var context = new SportsbookContext();//_connectionString); var matchWinner = new MarketTypeEntity { Name = "Match Winner" }; var ev = new EventWithMarketEntity { Name = "AC Milan - New Castle" }; var market = new MarketEntity { Type = matchWinner, Event = ev }; context.Entry(market).State = EntityState.Added; var result = context.SaveChanges(); Assert.IsTrue(result > 0); }
public void AddMarketToEventWithMarket() { var context = new SportsbookContext();//_connectionString); var matchWinner = new MarketTypeEntity { Name = "Match Winner" }; var eventId = context.Set<MarketEntity>() .Select(m => m.Event.Id) .FirstOrDefault(); var existingEvent = new EventWithMarketEntity { Id = eventId, }; var newMarket = new MarketEntity { Event = existingEvent, Type = matchWinner, }; context.Entry(existingEvent).State = EntityState.Unchanged; context.Entry(newMarket).State = EntityState.Added; context.SaveChanges(); }
public void OneEventToManyMarketsRelationship() { var context = new SportsbookContext();//_connectionString); var matchWinner = new MarketTypeEntity { Name = "Match Winner" }; var overUnder = new MarketTypeEntity { Name = "Match Winner" }; var ev = new EventWithMarketEntity { Name = "Manchester City - Barcelona FC" }; var market1 = new MarketEntity { Type = matchWinner, Event = ev }; var market2 = new MarketEntity { Type = overUnder, Event = ev }; context.Entry(market1).State = EntityState.Added; context.Entry(market2).State = EntityState.Added; context.SaveChanges(); }