Репозиторий неправильно реализует интерфейс - PullRequest
0 голосов
/ 11 января 2012

Я получаю ошибку

Ошибка 1 «OCDSandbox.Models.OrganizationRepository» не реализует элемент интерфейса «OCDSandbox.Models.IRepository.FindByOrgNbr ()» C: \ source temp \ OCDSandbox\ OCDSandbox \ Models \ OrganizationRepository.cs строка 9

OrganizationRespository.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace OCDSandbox.Models
{

    public class OrganizationRepository : IRepository
    {
        private GMS_Sandbox_testDataContext _dataContext;


        public OrganizationRepository()
        {
            _dataContext = new GMS_Sandbox_testDataContext();
        }



        public IList<Organization> ListAll()
        {
            var organizations = from o in _dataContext.Organizations
                select o;
            return organizations.ToList();
        }

        public ICollection<Organization> FindAll()
        {
            return _dataContext.Organizations.ToList();
        }

        public ICollection<Organization> FindByOrgNbr(string OrgNbr)
        {
            var organizations = _dataContext.Organizations.Where(p => p.org_nbr == OrgNbr).ToList();
            return organizations;
        }

    }
}

IRepository.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace OCDSandbox.Models
{
    public interface IRepository
    {
        // organization interface
        IList<Organization> ListAll();
        ICollection<Organization> FindAll(); //returns list read only
        ICollection<Organization> FindByOrgNbr();

    }
}

Любая помощь с благодарностью.Это мой первый раз, когда я использую репо, и я бы хотел затем протестировать FindByOrgNbr в контроллере.Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 11 января 2012

Вам не хватает параметра в интерфейсе в определении FindByOrgNbr

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace OCDSandbox.Models
{
    public interface IRepository
    {
        // organization interface
        IList ListAll();
        ICollection FindAll(); //returns list read only
        ICollection FindByOrgNbr(string OrgNbr);

    }
}
0 голосов
/ 11 января 2012

Вам не хватает параметра OrgNbr в определении интерфейса для FindByOrgNbr().

public interface IRepository
{
    // organization interface
    IList<Organization> ListAll();
    ICollection<Organization> FindAll(); //returns list read only
    ICollection<Organization> FindByOrgNbr(string OrgNbr);
}
0 голосов
/ 11 января 2012

Спасибо, потому что интерфейс имеет этот метод: ICollection<Organization> FindByOrgNbr();, а ваш класс имеет public ICollection<Organization> FindByOrgNbr(string OrgNbr)

Кажется, интерфейсу тоже нужен параметр OrgNbr.

...