Как создать абстрактный класс из DbQuery <T>и IDbSet <T>на EntityFramework - PullRequest
0 голосов
/ 12 февраля 2012

возможно ли создать абстрактный класс из DbQuery и IDbSet?Я пытаюсь создать слой абстракции для моего модульного тестирования.

public abstract class BaseDbSet<T> : DbQuery<T>, IDbSet<T> where T : Entity
{
    #region IDbSet<T> Members

    public abstract T Add(T entity);
    public abstract T Attach(T entity);
    public abstract TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, T;
    public abstract T Create();
    public abstract T Find(params object[] keyValues);
    public abstract ObservableCollection<T> Local { get; }
    public abstract T Remove(T entity);

    #endregion
}

Я получаю следующую ошибку:

Ошибка 1 Тип 'System.Data.Entity.Infrastructure.DbQuery 'не имеет определенных конструкторов @path \ BaseDbSet.cs

Если я пытаюсь добавить конструктор, я получаю:

Ошибка 1 Тип' Система.Data.Entity.Infrastructure.DbQuery 'не имеет конструкторов, определенных @path \ BaseDbSet.cs

1 Ответ

2 голосов
/ 12 февраля 2012

Это потому, что конструкторы объявлены как внутренние.Следовательно, вы не можете получить к ним доступ.

Юнит-тестирование EF-кода является ошибочной концепцией.Отметьте этот ответ .Вы тратите драгоценное время на ненужные абстракции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...