Не уверен, что это то, что вы имеете в виду в своем вопросе, но что действительно здорово в ObjectSet, так это то, что он реализует интерфейс IObjectSet , что означает, что вы можете очень легко его подделать и протестировать код вниз до уровня доступа к данным.
Что еще круче, так это то, что поскольку ObjectSet использует универсальные типы ( IObjectSet ), вы можете иметь универсальный репозиторий и реализовать шаблон Unit Of Work .
public interface IRepository<T> where T : class
{
IQueryable<T> GetQuery();
IEnumerable<T> GetAll();
IEnumerable<T> Find(Func<T, bool> where);
T Single(Func<T, bool> where);
T First(Func<T, bool> where);
void Delete(T entity);
void Add(T entity);
void Attach(T entity);
void SaveChanges();
}
Полная статья здесь:
http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/