Examples of data access patterns in .NET applications