Это эквивалент для ObjectContext:
this.dbSet = context.CreateObjectSet<TEntity>();
Теперь это создает ObjectSet<TEntity>
, а не DbSet<TEntity>
, но для вашего шаблона вы можете использовать его таким же образом.
ОБНОВЛЕНИЕ
Класс ObjectSet
не имеет такого вспомогательного метода, который соответствует методу Find()
DbSet
.Чтобы «получить по ключу», вам нужно создать EntityKey
и использовать ObjectContext.GetEntityByKey()
, к сожалению, это не так просто.
Там действительно нет 'Я нашел простой способ справиться с этим.В моем случае все, что я сделал, это основал все мои сущности из общего класса (используя пользовательские шаблоны T4 для генерации классов из модели).И тогда я могу добавить общее ограничение к своим репозиториям, например:
public class MyRepository<TEntity> where TEntity : MyEntityBaseClass
И тогда мой общий базовый класс имеет поле Id
, которое наследуется всеми сущностями, поэтому я могу просто сделать:
return myObjectSet.SingleOrDefault(x => x.Id == myId);
Я уверен, что есть другие подходы, которые могут быть хорошей темой для другого вопроса.