Преобразование объектов Linq To Sql DataContext в объекты DataContract - PullRequest
1 голос
/ 23 ноября 2010

У меня есть классы DataContext, сгенерированные из dbml. После получения данных из базы данных мне необходимо преобразовать их в классы DataContract, чтобы объекты можно было отправлять через WCF.

Один из способов сделать это так:

using (var dc = new TestDBL2SDataContext(Settings.Default.TestDBConnectionString))
        {
            var myEmp = from rec in dc.Employees
                    select new MyDataContracts.Employee 
                             { 
                               FirstName = rec.Name.Substring(0,10) 
                             };
            return myEmp.FirstOrDefault();;
        }

Есть ли лучший способ сделать это через файл XSD / XSLT, который я могу определить в своем проекте и просто указать на него?

Ответы [ 3 ]

2 голосов
/ 23 ноября 2010

Откройте файл dbml, выберите конструктор и в окне свойств установите для параметра «Режим сериализации» значение «Однонаправленный», и это все, что вам нужно для отправки записей Employee, возвращенных из текста данных через WCF.

Я надеюсь, что то, что вы ищете.

1 голос
/ 23 ноября 2010

Мы написали Translator<FromDataModelType, ToDataContractType> классы для этого и используем AutoMapper в качестве быстрого и безболезненного способа сопоставления свойств.

Это предполагает, что вам нужноприменять преобразования к классам DataContext, как вы делаете, назначая подстроку Name FirstName.

0 голосов
/ 23 ноября 2010

В конструкторе dbml установите режим сериализации на однонаправленный. Работа выполнена.

Если вам нужен немного другой слой DTO, возможно AutoMapper будет хорошим вариантом.

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