WCF с EntityFramework - PullRequest
       2

WCF с EntityFramework

0 голосов
/ 26 марта 2012

Я пишу свой первый сервис WCF. У меня есть несколько операций, которые используют Entity Framework - захват некоторых данных и возвращение строки JSON.

Я могу успешно вызывать операции, используя wcfClient, но когда я пытаюсь вызвать операцию в моем собственном приложении консоли тестирования, я получаю следующую ошибку в конструкторе модели сущностей:

Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недопустимо. Код в классе DataContract:

[DataContract]
public class DrawSystemService : IDrawSystemService
{
    public string GetDrawEntry(string entryId)
    {
        using (MyEntities context = new MyEntities())
        {
            tblDrawEntry drawEntry = null;
            try
            {
                drawEntry = context.tblDrawEntries.FirstOrDefault(e => e.DrawEntryID == new Guid(entryId));
            }
            catch (Exception ex)
            {
            }
            string json = JsonConvert.SerializeObject(drawEntry, Formatting.Indented);
            return json;
        }
    }
}

Код в консольном приложении:

            WcfDrawSystemLibrary.DrawSystemService drawSystem = new DrawSystemService();

        drawSystem.GetDrawEntry("665B534B-73EE-4385-A9BA-02A25CB5FE4D");

1 Ответ

1 голос
/ 27 марта 2012

В целом проблема может заключаться в том, что вам нужно добавить правильную строку подключения в ваш app.config вашего консольного приложения. Возьмите копию строки подключения из конфигурации службы и добавьте ее в файл app.config вашей консоли.

С другой стороны, я замечаю, что ваша служба помечена как [DataContract], а должна быть [ServiceContract]. Может быть, это опечатка, и вы уже сделали это на своем уровне интерфейса

Если вы действительно относитесь к этому сервису как к DataContract, я бы посоветовал проверить это, так как это не должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...