Ссылка на EntityBase и IAggregateRoot не найдена?

Я пытаюсь создать репозиторий, поэтому я нашел, что эта ссылка очень хорошо объяснена, но я получил ошибку

Ошибка 1 Не удалось найти тип или имя пространства имен EntityBase (отсутствует директива using или ссылка на сборку?)

Ошибка 2 Не удалось найти тип или имя пространства имен 'IAggregateRoot' (отсутствует директива using или ссылка на сборку?)

Мой код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Linq.Expressions;

namespace DapperAndSQLite
{
    public interface IRepository<T> where T : EntityBase, IAggregateRoot
    {
        void Add(T item);
        void Remove(T item);
        void Update(T item);
        T FindByID(Guid id);
        IEnumerable<T> Find(Expression<Func<T, bool>> predicate);
        IEnumerable<T> FindAll();
    }
}

Вот скриншот (чтобы показать сборку или чего-то не хватает)

введите описание изображения здесь

Я что-то пропустил?

2 ответа

Решение

Вы не добавили интерфейс IAggregateRoot а также EntityBase в вашем проекте. Ссылочная статья имеет исходный код, размещенный на github здесь.

Добавьте интерфейс и базовый класс отсюда.

1) Вы никогда не должны размещать интерфейсы репозитория в проектах инфраструктуры, они принадлежат домену.

2) Эта EntityBase и IAggregateRoot должны оставаться внутри проекта Domain.

3) Вы должны добавить ссылку на проект домена в Infrastructure.DapperAndSQLite и реализовать эти репозитории.

Другие вопросы по тегам