ASP.NET MVC - Как создать пользовательские модели представления в C # для передачи набора данных в строго типизированное представление? - PullRequest
1 голос
/ 22 октября 2010

Я новичок в ASP.NET, C # и инфраструктуре MVC, но мне удалось создать сайт, который работает довольно хорошо.

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

Я использую Entity Framework и извлекаю свои данные с помощью:

var usersInfo = from c in _dataModel.UserProfile select new { c.Forname, c.Surname, c.aspnet_Users.UserName, c.Countries.CountryName, c.Specialities.SpecialityName};

Данные возвращаются нормально, но они имеют тип: 'System.Data.Objects.ObjectQuery 1 [<> f__AnonymousType6 5[System.String,System.String,System.String,System.String,System.String]]'

Как я могу получить это в тип, который я могу передать обратно в строго типизированный View?

Спасибо

Giles

1 Ответ

3 голосов
/ 22 октября 2010

Создайте именованный класс для хранения данных, которые в настоящее время инкапсулированы в выбранных вами анонимных данных:

public class MyClass
{
    public string Forename{get;set;}
    public string Surname{get;set;}
    //etc
}

var usersInfo = from c in _dataModel.UserProfile select new MyClass{ Forename=c.Forname, Surname=c.Surname, ...};

Теперь у вас есть конкретный тип, который вы с легкостью можете использовать в своем приложении. Если вы часто сталкиваетесь с этим, инструменты рефакторинга, такие как Resharper, могут конвертировать из анонимных в именованные типы за пару кликов.

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