Я выполняю операции CRUD над базой данных Northwind с WCF.
Сначала я создал метод POST, который работает, когда я пробую его с тестовым клиентом WCF, но метод get показывает эту ошибку:
Не удалось вызвать службу.Возможные причины: служба недоступна или недоступна;конфигурация на стороне клиента не соответствует прокси;существующий прокси-сервер недействителен.Обратитесь к трассировке стека для более подробной информации.Вы можете попытаться выполнить восстановление, запустив новый прокси-сервер, восстановив конфигурацию по умолчанию или обновив службу.
Не знаю, удастся ли мне сделать ViewModel, которая будет иметь те же свойства, что и сотрудникиКласс, а затем перебрать его и отобразить результаты?
Вот файл конфигурации
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" sendTimeout="00:05:00" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:55658/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1" contract="IService1"
name="BasicHttpBinding_IService1" />
</client>
</system.serviceModel>
</configuration>
А вот метод get:
public IEnumerable<Employee> GetEmployees()
{
List<Employee> list = new List<Employee>();
NorthwindContext db = new NorthwindContext();
list = db.Employees.ToList();
return list;
}
это сервис:
[ServiceContract]
public interface IService1
{
[OperationContract]
IEnumerable<Employee> GetEmployees();
[OperationContract]
void InsertEmployee(Employee e);
[OperationContract]
void UpdateEmployee(Employee e);
[OperationContract]
void DeleteEmployee(int id);
}
ОБНОВЛЕНИЕ
Хорошо, я решил, проблема в том, что класс Employee имеет внешний ключ, и клиент не может его «прочитать», и он показывает ошибку, так как онне умеет читать это свойство.
Все, что я сделал, это сделал класс EmployeeView и вставил свойства, которые я хочу показать.
Теперь метод Get выглядит следующим образом
public IEnumerable<EmployeeView> GetEmployees()
{
NorthwindContext db = new NorthwindContext();
IQueryable<EmployeeView> list = db.Employees.Select(e => new EmployeeView
{
EmployeeID = e.EmployeeID,
FirstName = e.FirstName,
LastName = e.LastName
});
return list;
}