using System.Collections.Generic;
public static void Main()
var customer = new Customer("John", "Doe");
var savedCustomer = Customer.Find(1);
Console.WriteLine(savedCustomer.Id);
public class BaseEntity<T>
static List<BaseEntity<T>> Entities = new List<BaseEntity<T>>();
public static BaseEntity<T> Find(int id)
return Entities.FirstOrDefault(x => x.Id == id);
this.Id = (Entities.Max(x => x.Id) ?? 0) + 1;
public class Customer : BaseEntity<Customer>
public string FirstName {get;set;}
public string LastName {get;set;}
public Customer(string firstName, string lastName)