using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
using Microsoft.Data.Sqlite;
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Product> Products { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public string Description { get; set; }
public class ShopContext : DbContext
public ShopContext(DbContextOptions<ShopContext> options)
Database.EnsureCreated();
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
protected override void OnModelCreating(ModelBuilder modelBuilder)
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
public static void Main()
var connection = new SqliteConnection("DataSource=:memory:");
var options = new DbContextOptionsBuilder<ShopContext>()
using (var context = new ShopContext(options))
Enumerable.Range(1, 10).ToList().ForEach(x =>
context.Categories.Add(new Category
Description = $"Description_{x}"
Enumerable.Range(1, 10).ToList().ForEach(x =>
context.Products.Add(new Product
Description = $"Description_{x}"
var categories = context.Categories.AsQueryable();
categories = categories.Where(b => b.Products.Any(x => x.Id < 2));
categories.ToList().ForEach(x =>{
Console.WriteLine(x.Name);