2015-05-10 3 views
0

Что касается этой темы, я открыл ранее:Entity Framework через WCF службы (без IIS)

Storing WCF rest request data with SQL Server stored procedure

У меня есть простой интерфейс в моем WCF службы с одним методом, который получает параметр myRequest

public interface IService 
{ 
    [OperationContract] 
    string MyOperation(myRequest request); 
} 

Когда я отправляю данные от клиента, тип содержимого application/json, поэтому тело запроса автоматически десериализуется в объект myRequest.

myRequest является WCFDataContract:

[DataContract] 
public class myRequest 

{ 
    string id; 
    string Name; 

    [DataMember] 
    public string Name { get; set; } 
    [DataMember] 
    public string Id { get; set; } 

} 

public string MyOperation(myRequest request) 
{ 
    if (request != null) { 
     Contact contact = new Contact(); 
     contact.Id = Int32.Parse(request.Id); 
     contact.DisplayName = request.Name; 

     ContentContext db = new ContentContext(); 
     db.Contacts.Add(contact); 
     db.SaveChanges(); 

     return "ok"; 
    } 

    SetResponseHttpStatus(HttpStatusCode.InternalServerError); 
    return null; 
} 

И, наконец, хостинг услуги:

public class ProgramBL { 
    public static void StartServer() 
     { 

      ServiceHost streamer = new ServiceHost(typeof(DataStreaming.StreamService)); 


      streamer.Open(); 
      Console.WriteLine("Service up and running at:"); 
      foreach (var ea in streamer.Description.Endpoints) 
      { 
       Console.WriteLine(ea.Address); 
      } 

      Program._StreamerHost = streamer; 
     } 
} 

_StreamerHost сво статический член класса Program.

Когда я пытаюсь использовать EF через службу WCF rest, размещенную в консоли/приложении. Когда я пытаюсь это сделать - клиент получает всегда 400 Bad Request ответ.

Другое дело - я создал новый проект в решении для модели базы данных, услуга WCF - это еще один проект, поэтому я добавил в проект службы refrence проекта модели базы данных. Чтобы добиться этого, мне пришлось установить и добавить ссылку на рабочий пакет Nuget Entityframe.

Любые решения?

Спасибо

+0

Оставьте свой код, пожалуйста. Это поможет нам помочь – MickyD

+0

Пожалуйста, введите ссылку, которую я добавил, Это нить, которую я открыл несколько часов назад, заставило меня открыть эту новую тему ... – sharonooo

+0

Хмм. Нет никакого клиентского кода консоли там и здесь, хотя – MickyD

ответ

-1

Хорошо, поэтому я решил проблему.

Я установил библиотеку инфраструктуры Entity только в проекте службы (я использовал встроенную библиотеку в проекте базы данных). После того, как я установил структуру Entity в проект базы данных + добавил connectionString к сервису App.config все кажется ОК.

Смежные вопросы