Я пишу общий репозиторий для фреймворка сущности и смущен тем, что разница между этими вызовами:
ObjectContext.CreateObjectSet<T>
ObjectContext.CreateQuery<T>
DbContext.Set<T>
Я хочу, чтобы общий репозиторий поддерживал контекст, созданный из .edmx файлов, а также первый код DbContext, поэтому я получил следующее:
public abstract class EntityRepository<TClass>
where TClass : class, new()
{
//private readonly TContext _context;
private readonly ObjectSet<TClass> _objectSet;
protected EntityRepository(IObjectContextAdapter context)
{
_objectSet = context.ObjectContext.CreateObjectSet<TClass>();
}
protected EntityRepository(ObjectContext context)
{
_objectSet = context.CreateObjectSet<TClass>();
}
public ObjectSet<TClass> Query()
{
return _objectSet;
}
}
В примерах, которые я видел в Интернете, я видел все 3 использованные, каковы фактические различия между ними? Лучше ли производительность? Я знаю, что вы можете писать запросы LINQ против контекстов, используя все 3 метода.