2012-01-11 21 views
1

我正的误差是库不执行接口正确

错误1 'OCDSandbox.Models.OrganizationRepository' 不实现 接口构件 'OCDSandbox.Models.IRepository.FindByOrgNbr()' C:\源 TEMP \ OCDSandbox \ OCDSandbox \模型\ 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(); 

    } 
} 

任何帮助是极大的赞赏。这是我第一次使用repo,然后我想在控制器中测试FindByOrgNbr。提前致谢!

+1

FindByOrgNbr不期望参数。 – MatthiasG 2012-01-11 14:16:32

回答

3

你错过了在界面中的参数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

哇应该看得更近。谢谢!现在它说“没有过载的方法'FindByOrgNbr'需要0参数 – 2012-01-11 14:24:22

+0

您需要调用FindByOrgNbr方法,并使用参数 – 2012-01-11 14:27:57

+0

我在控制器中调用它。 – 2012-01-11 14:33:52

1

感谢,因为接口有以下方法:ICollection<Organization> FindByOrgNbr();和你的类有public ICollection<Organization> FindByOrgNbr(string OrgNbr)

看来接口需要OrgNbr参数。

1

您在FindByOrgNbr()的接口定义中缺少OrgNbr参数。

public interface IRepository 
{ 
    // organization interface 
    IList<Organization> ListAll(); 
    ICollection<Organization> FindAll(); //returns list read only 
    ICollection<Organization> FindByOrgNbr(string OrgNbr); 
}