Поглощение службы данных WCF в клиентском приложении выдает ошибку - PullRequest
0 голосов
/ 07 сентября 2010

Я работаю над службой данных WCF, которая импортировала хранимую процедуру, как показано ниже.

    [WebGet]
    public List<GetMTSearchResultTest_Result> GettMTSearchResultTest()
    {
        MediaMarketResearch_PRODEntities ent = new MediaMarketResearch_PRODEntities();
        return ent.GetMTSearchResultTest().ToList();
    }

, когда я потребляю это в своем клиентском приложении, он говорит об ошибке как «Закрытый тип MMRClient.MMRServiceReference.GetMTSearchResultTest_Result неимеет соответствующее настраиваемое свойство элемента. "

Я получаю эту ошибку при привязке к представлению сетки, как показано ниже.

    DataServiceContext context = new DataServiceContext(new Uri("http://localhost:4131/MMRDataService.svc/"));
    IEnumerable<GetMTSearchResultTest_Result> empResult = context.Execute<GetMTSearchResultTest_Result>(new Uri("http://localhost:4131/MMRDataService.svc/GettMTSearchResultTest"));
    GridView1.DataSource = empResult;
    GridView1.DataBind();

Примечание: я импортировал этот сохраненный процесс как сложный тип.

Пожалуйста, сообщите мне об этом.

С уважением,

Jaydeep

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Вы всегда можете сделать новую ссылку на услугу, не относящуюся к услуге данных.Это для нормальной службы WCF.Вы можете просто получить [ContractOperation], возвращающий список проблемных «сложных типов», и все.

Таким образом, у вас будет две службы: исходная служба данных и новая обычная служба WCF.Но это не должно быть такой проблемой.Вам не нужно создавать проблемный «сложный тип» как сущность.

0 голосов
/ 07 сентября 2010

Я думаю, что эта ссылка может помочь вам (см. Выбранный ответ).

По сути, решение может состоять в том, чтобы создать частичный класс для GetMTSearchResultTest_Result и украсить егоDataServiceKey атрибут, предоставляющий необнуляемый столбец, который действует как первичный ключ (хотя я не думаю, что он должен быть уникальным).

Таким образом, ваш частичный класс будет выглядеть примерно так:

[DataServiceKey("YourKeyColumnName")]
public partial class GetMTSearchResultTest_Result {
}

Если вы просто читаете, я не думаю, что вам понадобится какая-либо реализация.

Надеюсь, это сработает.Дайте мне знать, если есть проблемы / вопросы, и я буду обновлять соответственно.

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