«Не имеет соответствующего возвращаемого типа»; создать сервис wcf, используя объект данных с двумя переменными хранимой процедурой - PullRequest
0 голосов
/ 15 сентября 2018

Это моя первая попытка создать службу WCF с использованием объекта данных.

У меня есть простая хранимая процедура для поиска адреса с указанным номером возврата.

Хранимая процедура (prcGetCOBAddress):

SELECT TOP (@NumberOfRecord)
    *
FROM
    COB_ADDRESS
WHERE
    ADD_FULL LIKE '%' + @FullAddress + '%'

IService1.cs:

public interface IService1
{
    [OperationContract]
    COB_ADDRESS FindAddress(int NumReturn, string FullAdd);
}

Service1.svc.cs:

public class Service1 : IService1
{
    public COB_ADDRESS[] FindAddress(int NumReturn, string FullAdd)
    {
        try
        {
            using (TestingEntities de = new TestingEntities())
            {
                return de.prcGetCOBAddress(NumReturn, FullAdd)
                         .Select(p => new COB_ADDRESS
                         {
                             UID_NUM = p.UID_NUM,
                             ADD_FULL = p.ADD_FULL
                         }).ToArray();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            return null;
        }
    }        
}

Я получил короткое подчеркивание ниже IService1 и сообщение об ошибке говорит Service1не реализует элемент интерфейса IService1.FindAddress(int, string).Service1.FindAddress(int, string)} не может реализовать IService1.FindAddress(int, string), потому что у него нет соответствующего возвращаемого типа COB_ADDRESS.

Кто-нибудь может мне помочь, что мне не хватает?

1 Ответ

0 голосов
/ 15 сентября 2018

Как говорит @PaulAbbott, интерфейс и его реализация не совпадают.Ваш интерфейс:

public interface IService1
{
    [OperationContract]
    COB_ADDRESS FindAddress(int NumReturn, string FullAdd);
}

и должен быть:

public interface IService1
{
    [OperationContract]
    COB_ADDRESS[] FindAddress(int NumReturn, string FullAdd);
}
...