2012-04-23 1 views
0

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

Я использую EF с шаблоном репозитория, чтобы выполнить всю работу DataAccess. Поскольку параметры прохождения являются тихим огромным списком (15+).

Комплексный тип (DTO) - гораздо более чистый способ сделать это ?. или любой другой альтернативы для этого.

Я ищу чистое и простое внедрение ...

подробнее ...

1) Создать DTO объект со всеми деталями параметров разделяемых между стороной обслуживания и Repository стороны.

Public class RecordDTO 
    { 
    public string param1; 
    public string param2; 
    ..... 
    public string param15; 

    } 

2) Используйте DTO объекта для перехода от метода обслуживания в репозитарии (оба проект должен иметь доступ к DTO)

Repository.CreateRecord(RecordDTO myRecordObj) 

3) Repository принимает это и анализировать данные и делать все виды DataAccess логический и возвратный объект модели, прошедший обратно, который понимает как сервис, так и клиент.

Я просто изучаю и пытаюсь выяснить, возможно ли это.

+0

Можете ли вы дать нам краткий пример кода, который вы пытаетесь улучшить? – RQDQ

+0

для метода, такого как CreateRecord (param1, ............... param15) в реализации службы, может быть написана совместно с библиотекой сложного типа (DTO) как на стороне реализации, так и на стороне репозитория. – sam

+0

отредактируйте исходный вопрос и включите форматированный код. Код в комментариях трудно читать. – RQDQ

ответ

0

Вы можете добавить CreateRequest dto и инкапсулировать все параметры внутри. Это лучше по многим причинам, и некоторые из них являются: - лучше читаемостью - простой метод подписью - предотвращающие отличиями ..

Если эти параметры должны быть сохранены с несколько методом репозитория Кальес вы можете добавить объем транзакций в вашем реализация метода обслуживания.

Я полагаю, что все эти параметры логически связаны с этой операцией CreateRecord (одна транзакция). Если они этого не сделают, вы можете разбить это на несколько методов обслуживания.

+0

Это единственный способ обслуживания. Но CreateRequest dto для одного способа использует только i.e (сервис для репозитория). Объектом Response будут объекты POCO (объекты первой модели EF-кода). – sam