public void Querying_LazyLoading_CanLoadEntityCollection() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); Assert.Equal(2, context.Products.Count()); var query = from p in context.Products where p.Name == "Banana" select p; var products = query.ToList <Product>(); Assert.False(products[0].Parts.IsLoaded); var count = products[0].Parts.Count; Assert.Equal(3, count); var parts = products[0].Parts.ToList(); Assert.Equal("Bolt", parts[0].Name); Assert.Equal("Wrench", parts[1].Name); Assert.Equal("Hammer", parts[2].Name); Assert.True(products[0].Parts.IsLoaded); } }
public void Queries_Projections_CanProjectToJoinObject() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var q = from p in context.Products join s in context.Suppliers on p.Id equals s.Id select new JoinedProductSuppliers { Product = p, Supplier = s }; var result = q.ToList(); Assert.Equal(2, result.Count()); Assert.Equal("Banana", result[0].Product.Name); Assert.Equal("Bananas-R-Us", result[0].Supplier.Name); Assert.Equal("Plum", result[1].Product.Name); Assert.Equal("Plums-R-Us", result[1].Supplier.Name); } }
public async void Queries_SumAsync_Works() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var productCost = await context.Products.SumAsync(p => (decimal)p.Price); Assert.True(productCost.Equals(8.0)); } }
public async void Queries_FirstAsync_Works() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var plum = await context.Products.FirstAsync(p => p.Name == "Plum"); Assert.True(plum.Name == "Plum"); } }
public async void Queries_CountAsync_Works() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var productCount = await context.Products.CountAsync(); Assert.Equal(2, productCount); } }
public async Task Database_Query_CanReadListAsync() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var products = await context.Products.ToListAsync(); Assert.Equal(2, products.Count()); Assert.Equal("Banana", products[0].Name); Assert.Equal("Plum", products[1].Name); } }
public void Database_can_read_with_pk() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var product = context.Products.First(p => p.Id == 1); var product2 = context.Products.First(p => p.Id == 2); Assert.Equal("Banana", product.Name); Assert.Equal("Plum", product2.Name); } }
public void Querying_EagerLoading_CanLoadEntityReference() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var query = from p in context.Products.FetchOne(p => p.Supplier) select p; var products = query.ToList <Product>(); Assert.True(products[0].Supplier.IsLoaded); Assert.Equal("Bananas-R-Us", products[0].Supplier.Value.Name); } }
public void Queries_Simple_CanReadList() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); Assert.Equal(2, context.Products.Count()); var query = from p in context.Products where p.Name == "Banana" select p; var products = query.ToList <Product>(); Assert.Single(products); Assert.Equal("Banana", products[0].Name); } }
public void Queries_Projections_CanProjectToDTO() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var q = from p in context.Products select new ProductDto { ProductDescription = p.Name }; var result = q.ToList(); Assert.Equal(2, result.Count()); Assert.Equal("Banana", result[0].ProductDescription); Assert.Equal("Plum", result[1].ProductDescription); } }
public void Querying_EagerLoading_CanLoadEntityCollection() { const string connectionString = "Data Source=:memory:"; var options = new DataContextOptionsBuilder().UseSqlite(connectionString).Options; using (var context = new TestDataContext(options)) { context.Initialize(); var query = from p in context.Products.FetchMany(p => p.Parts) select p; var products = query.ToList <Product>(); Assert.True(products[0].Parts.IsLoaded); var parts = products[0].Parts.ToList(); Assert.Equal("Bolt", parts[0].Name); Assert.Equal("Wrench", parts[1].Name); Assert.Equal("Hammer", parts[2].Name); } }