Использование несоответствия данных Entity Framework - PullRequest
0 голосов
/ 28 февраля 2011

Пример кода для контроллера, написанного на c # с использованием Visual Studio 2010 Express-

    public ActionResult Index()
    {
        var _user = Membership.GetUser().ProviderUserKey.ToString();

        var profiles = from p in db.Profiles
                       where p.UserId == _user
                       select new
                       {
                           ProfileId = p.ID
                       };

        return View(profiles.ToList());
    }

Код из вида -

@model List<MyProject.Models.Profile>

@{
    ViewBag.Title = "Index";
 }

и я постоянно получаю эту ошибку -

Элемент модели, передаваемый в словарь, имеет тип 'System.Collections.Generic.List 1[<>f__AnonymousType1 1 [System.Int32]]', но для этого словаря требуется элемент модели типа 'System.Collections.Generic.List `1 [MyProject.Models.Profile]».

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Вы должны иметь

 var profiles = from p in db.Profiles
                       where p.UserId == _user
                       select p;

чтобы удовлетворить требования вашего взгляда на модель.

0 голосов
/ 28 февраля 2011

Вы проецируете на анонимный объект, как написано в сообщении компилятора. Если вы действительно хотите получить список объектов Profile, вам следует заменить предложение select в вашем запросе linq на

 select p;

То есть, предполагая, что db.Profiles содержит объект вашей модели (типа Model.Profile)

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