using Microsoft.EntityFrameworkCore;
public static void Main()
AddEntity(new Articolo(){Nome="articolo1"},db);
AddEntity(new Articolo(){Nome="articolo2"},db);
AddEntity(new Ordine(){Numero=1},db);
AddEntity(new Ordine(){Numero=2},db);
Console.WriteLine("Query 1 (articoli)");
db.Base.Local.Where(w=>w.Data>=data&&w.Data<data.AddSeconds(1)).ToList().ForEach(f=>Console.WriteLine($"Data:{f.Data}, Tipo:{f.GetType().Name}"));
Console.WriteLine("Query 2 (tutti)");
db.Base.Local.Where(w=>w.Data>=data).ToList().ForEach(f=>Console.WriteLine($"Data:{f.Data}, Tipo:{f.GetType().Name}"));
Console.WriteLine("Query 3 (ordini)");
db.Base.Local.Where(w=>w.Data>=data.AddSeconds(2)).ToList().ForEach(f=>Console.WriteLine($"Data:{f.Data}, Tipo:{f.GetType().Name}"));
public static void AddEntity<T>(T entity, DB db) where T : Entity
entity.Data = DateTime.Now;
public class DB : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder options)
options.UseSqlite("Data Source=:memory:");
public DbSet<Entity> Base {get;set;}
public DbSet<Articolo> Articoli {get;set;}
public DbSet<Ordine> Ordini {get;set;}
public abstract class Entity
public DateTime Data {get;set;}
public class Articolo: Entity
public string Nome {get;set;}
public class Ordine : Entity
public int Numero {get;set;}