public abstract class BaseModel<T>
private string __ModelName { get; set; }
public virtual Int32 Id { get; set; }
public virtual DateTime CreateDate { get; set; }
public virtual DateTime WriteDate { get; set; }
public BaseModel(string ModelName)
public override string ToString()
return this.Id.ToString();
public static System.Collections.Generic.IEnumerable<T> GetAll()
return GetAllWithDomain(null);
public static abstract System.Collections.Generic.IEnumerable<T> GetAllWithDomain(params object[] Domain);
public class CarModel : BaseModel<CarModel>
public string Make {get; set; }
public string Color {get; set; }
public string Doors {get; set; }
public CarModel() : base("car.model")
public static override System.Collections.Generic.IEnumerable<CarModel> GetAllWithDomain(params object[] Domain)