2014-01-14 4 views
0

Я пытался запросить базу данных AdventureWork2012, используя VS 2012, вот мой код, и я получил от этого ошибки. Я не знал, как это исправить, каждый может сказать мне, как это решить. Спасибо огромное!Невозможно неявно преобразовать тип 'System.Collections.Generic.Lis <AnonymousType # 1>' в 'System.Collections.Generic.List <AdventureCycle.Models.Product>'

Model.Name = (from ob in db.Products join od in db.ProductSubcategories on ob.ProductSubcategoryID equals od.ProductSubcategoryID 
          where ob.Name.Contains("Bike") 
          select new { ob.Name}).ToList(); 
+1

Какой тип 'Model.Name'? –

+0

Это ** Список ** КатегорииBikesViewModel.Name –

ответ

1

Вы выбираете

select new { ob.Name} 

что приводит к анонимного типа с одной Name собственности. Так как кажется, что тип вашей Model.Name собственности List<Product>, вы можете выбрать целые продукты, используя

select ob 

вместо этого. Тем не менее, это действительно странно иметь вещь, которая называется Name, и пусть она будет List<Product>. Если он должен быть список названий продуктов, лучше определение было бы

public List<string> ProductNames {get; set;} 

и правильный запрос будет:

Model.ProductNames = (from ob in db.Products join od in db.ProductSubcategories on ob.ProductSubcategoryID equals od.ProductSubcategoryID 
         where ob.Name.Contains("Bike") 
         select ob.Name).ToList(); 

Или, если вы действительно нужно одно имя, чем это должна быть строка

public string Name {get; set;} 

и правильный запрос может быть:

Model.Name = (from ob in db.Products join od in db.ProductSubcategories on ob.ProductSubcategoryID equals od.ProductSubcategoryID 
         where ob.Name.Contains("Bike") 
         select ob.Name).FirstOrDefault(); 
+0

Я пробовал все и работал :) –

Смежные вопросы

 Смежные вопросы