A repository pattern for gaining the benefits of Entity Framework, while having a persistence ignorant domain model