Возврат наборов данных из LINQ to SQL в службу REST / WCF

У меня есть веб-служба WCF / REST, которую я планирую использовать Linq to SQL для возврата информации из базы данных.

] Достаточно легко выполнять базовые запросы к таблицам и возвращать строки, например:

    [WebGet(UriTemplate = "")]
    public List<User> GetUsers()
    {
        List<User> ret = new List<User>(); ;
        using (MyDataContext context = new MyDataContext())
        {
            var userResults = from u in context.Users select u;
            ret = userResults.ToList<User>();
        }

        return ret;
    }

Но что, если я хочу вернуть данные из нескольких таблиц или они не совсем соответствуют схеме таблицы? Я не могу понять как вернуть результаты этого запроса, например:

 var userResults = from u in context.Users
   select new  { u.userID, u.userName, u.userType, 
                 u.Person.personFirstname, u.Person.personLastname };

Очевидно, что результирующий набор строк не соответствует схеме «Пользователь», поэтому я не могу просто преобразовать его в список объектов «Пользователь».

Я попытался сделать новый объект в моей объектной модели, связанный с набором результатов, но он не хочет выполнять преобразование.

Что мне не хватает?

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

5
задан Will Hartung 26 July 2011 в 17:58
поделиться