Я пытаюсь вернуть объект Entity Framework, сгенерированный базой данных Entity Framework сначала в службе WCF.
Это мой интерфейс
namespace HiplotSystemService.services
{
[ServiceContract]
public interface IServiceUsuario
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "Useru")]
object GetUsuario();
}
}
Мой класс обслуживания:
namespace HiplotSystemService.services
{
public class ServiceUsuario : IServiceUsuario
{
public object GetUsuario()
{
using (HiplotSystemEntities datacontext = new HiplotSystemEntities())
{
var response = datacontext.usuario.Where(x => x.id == 6).FirstOrDefault();
return response;
}
}
}
}
Когда я звоню в службу почтальона, я не могу получить никакого ответа
Скриншот почтальона
Несмотря на то, что Visual Studio говорит, что WCF ответил кодом 200:
{
"name": "Microsoft.ApplicationInsights.Dev.Request",
"time": "2019-06-03T19:03:34.8763009Z",
"tags": {
"ai.cloud.roleInstance": "DESKTOP-5SD5F4O",
"ai.operation.id": "6b308fdc12cc3748bf7522f1169a3c66",
"ai.operation.name": "GET /services/ServiceUsuario.svc/Useru",
"ai.location.ip": "::1",
"ai.internal.sdkVersion": "web:2.10.0-32157"
},
"data": {
"baseType": "RequestData",
"baseData": {
"ver": 2,
"id": "|6b308fdc12cc3748bf7522f1169a3c66.5b1db8ff_",
"name": "GET /services/ServiceUsuario.svc/Useru",
"duration": "00:00:03.0628593",
"success": true,
"responseCode": "200",
"url": "http://localhost:61768/services/ServiceUsuario.svc/Useru",
"properties": {
"DeveloperMode": "true",
"_MS.ProcessedByMetricExtractors": "(Name:'Requests', Ver:'1.1')"
}
}
}
Кроме того, если перед возвращением выдается исключение, я вижу ответ var и, кажется, все в порядке, он имеет правильную информацию о пользователе.У меня есть несколько методов POST, и они отлично работают
Что-то, что я уже пробовал:
- Используйте вместо этого пользовательский тип var.
- Настройка
Configuration.LazyLoadingEnabled = false
в HiplotSystemEntities.Context.cs
- Установка
base.Configuration.ProxyCreationEnabled = false
в HiplotSystemEntities.Context.tt
- Возврат только логического значения - когда я это делаю, я могу получить истину или ложь в почтальоне
- Выберите только некоторые свойства для возврата, но все равно не получаю никакого ответа
- Вернуть объект в виде строки, я получаю объект в ответе, но в виде строки, очевидно,