using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
public int ProductId { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public class AppDbContext : DbContext
public AppDbContext (){ }
public AppDbContext (DbContextOptions<AppDbContext > options)
public DbSet<Product> Products { get; set; }
public DbSet<Customer> Customers { get; set; }
static void Main(string[] args)
var options = new DbContextOptionsBuilder<AppDbContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
using var dbContext = new AppDbContext(options);
PrepareSampleProducts(dbContext);
var productQuery01 = dbContext.Products
.Single(x => x.ProductId == 1);
var productQuery02 = dbContext.Products
.Single(x => x.ProductId == 2);
var result1 = dbContext.Products.Where(x => x.Price > 100).ToList();
var products = dbContext.Products.ToList();
var result2 = products.Where(x => x.Price > 100);
DumpDatabaseTables(dbContext);
private static void DumpDatabaseTables(AppDbContext dbContext)
FiddleHelper.WriteTable("Customers", dbContext.Customers);
FiddleHelper.WriteTable("Products", dbContext.Products);
static void PrepareSampleProducts(AppDbContext dbContext)
var lpatop = new Product { Name = "Laptop", Price = 1000 };dbContext.Products.Add(lpatop);
var tv = new Product { Name = "TV", Price = 500 };dbContext.Products.Add(tv);
var shirt = new Product { Name = "Shirt", Price = 20 };dbContext.Products.Add(shirt);