public void EfCore_GetAll_With_Includes_In_Strategy_String_LazyLoads_Email() { var repository = new EfCoreRepository <Contact, string>(dbContext); var strategy = new GenericFetchStrategy <Contact>(); strategy.Include(x => x.EmailAddresses); var contact = repository.GetAll(strategy).First(); contact.Name.ShouldBe("Test User 1"); dbContext.QueryLog.Count(filterSelects).ShouldBe(2); contact.EmailAddresses.First().Email.ShouldBe("*****@*****.**"); dbContext.QueryLog.Count(filterSelects).ShouldBe(2); }
public void GetMany_List_Should_Return_Multiple_Items_With_Strategy(IRepository <Contact, string> repository) { var strategy = new GenericFetchStrategy <Contact>(); strategy.Include(c => c.EmailAddresses); for (var i = 1; i <= 5; i++) { var contact = new Contact { ContactId = i.ToString(), Name = "Test User " + i }; repository.Add(contact); } var items = repository.GetMany(new[] { "1", "3", "4", "5" }.ToList(), strategy); items.Count().ShouldBe(4); }
public void GetAll_With_Includes_In_Strategy_String_LazyLoads_Email() { dbContext.Configuration.LazyLoadingEnabled = true; dbContext.Database.Log = sql => { if (sql.Contains("SELECT")) { queries.Add(sql); } }; var repository = new MyEfRepository(dbContext); var strategy = new GenericFetchStrategy <Contact>(); strategy.Include(x => x.EmailAddresses); var contact = repository.GetAll(strategy).First(); contact.Name.ShouldEqual("Test User 1"); queries.Count().ShouldEqual(1); contact.EmailAddresses.First().Email.ShouldEqual("*****@*****.**"); queries.Count().ShouldEqual(1); }