using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
public class ApplicationDbContext : DbContext
public ApplicationDbContext(){ }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
public virtual DbSet<Ticket> Tickets { get; set; }
public virtual DbSet<Message> Messages { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
modelBuilder.Entity<Ticket>(x =>
x.HasQueryFilter(y => y.IsDeleted == false);
modelBuilder.Entity<Message>(x =>
x.HasQueryFilter(y => y.IsDeleted == false);
public Guid Id { get; set; } = Guid.NewGuid();
public bool IsDeleted { get; set; }
public virtual ICollection<Message> Messages { get; set; } = new HashSet<Message>();
public Guid Id { get; set; } = Guid.NewGuid();
public DateTimeOffset InsertDate { get; set; } = DateTimeOffset.UtcNow;
public Guid? TeamId { get; set; }
public bool IsDeleted { get; set; }
static void Main(string[] args)
Console.WriteLine("======================================================");
var options = new DbContextOptionsBuilder<ApplicationDbContext>().UseInMemoryDatabase("Teeestasd").Options;
using (var dbContext = new ApplicationDbContext(options))
dbContext.Database.EnsureCreated();
ApplicationDbContext.Ticket ticket = new ApplicationDbContext.Ticket();
ApplicationDbContext.Message message = new ApplicationDbContext.Message();
ticket.Messages.Add(message);
dbContext.Tickets.Add(ticket);
var test1 = dbContext.Tickets
.Where(x => x.Messages.OrderByDescending(y => y.InsertDate).First().TeamId != Guid.Empty).ToList();
var test2 = dbContext.Tickets
.Where(x => x.Messages.OrderByDescending(y => y.InsertDate).First().TeamId != null).ToList();
Console.WriteLine($"test1: {test1.Count()}");
Console.WriteLine($"test2: {test2.Count()}");