Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся привести объект к типу. / 11 сообщений из 11, страница 1 из 1
24.09.2014, 13:26
    #38756081
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Здравствуйте!
Помогите, пожалуйста, разобраться со следующей проблемой.
Нужно заполнить listManufactuters и при работе этой части кода возникает ошибка :
Код: c#
1.
Не удалось привести тип объекта "System.Data.Entity.Infrastructure.DbQuery`1[ShopManagerDataNamespace.Manufacturer]" к типу


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
listItems = db.Items.Where(n => n.subCategoryId == idSubCategory).ToList();
int countItems = listItems.Count;
for (int i = 0; i < countItems; ++i)
{
      manufacturer = new Manufacturer();
      manufacturer = (Manufacturer)db.Manufacturers.Where(b => b.IdManufacturer == listItems[i].manufacturerId).Distinct();
      listManufacturers.Add(manufacturer);
}



Подскажите, что не так сделал?
...
Рейтинг: 0 / 0
24.09.2014, 13:35
    #38756110
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
.Distinct()
это зачем?

может .FirstOrDefault() поможет?
...
Рейтинг: 0 / 0
24.09.2014, 13:48
    #38756141
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Distinct хотел использовать для того, чтобы не было в коллекции повторяющихся объектов.
При использовании :
Код: c#
1.
manufacturer = (Manufacturer)db.Manufacturers.FirstOrDefault(b => b.IdManufacturer == listItems[i].manufacturerId);


возникает следующая ошибка :
Код: c#
1.
выражению LINQ to Entities не удается распознать метод "ShopManagerDataNamespace.Item get_Item(Int32)", поэтому его нельзя преобразовать в выражение хранилища.
...
Рейтинг: 0 / 0
24.09.2014, 13:55
    #38756163
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
что-то вы непонятное задумали.

это что за объект listManufacturers ?
а это что за класс Manufacturer ?

Код: c#
1.
listItems = db.Items.Where(n => n.subCategoryId == idSubCategory).ToList();



listItems - это что за список, какого типа там объекты?


давайте сюда весь код со всеми объявлениями и главное саму задачу, что вы пытаетесь этим кодом решить
...
Рейтинг: 0 / 0
24.09.2014, 14:10
    #38756188
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Не надо никакого цикла.
Код: c#
1.
db.Manufacturers.Where(b => listItems.Constraints(b.IdManufacturer).Distinct();
...
Рейтинг: 0 / 0
24.09.2014, 14:23
    #38756199
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Items, Manufacturers - это объекты-таблицы в EntityFramework.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public List<Manufacturer> GetStartManufacturers(int idSubCategory)
        {
            Manufacturer manufacturer = null;            
            List<Manufacturer> listManufacturers = new List<Manufacturer>();
            List<Item> listItems = new List<Item>();
            
            using (ShoppingEntity db = new ShoppingEntity())
            {
                listItems = db.Items.Where(n => n.subCategoryId == idSubCategory).ToList();
                int countItems = listItems.Count;
                for (int i = 0; i < countItems; ++i)
                {
                    manufacturer = new Manufacturer();
                    manufacturer = (Manufacturer)db.Manufacturers.FirstOrDefault(b => b.IdManufacturer == listItems[i].manufacturerId);
                    listManufacturers.Add(manufacturer);
                }                
            }                   

            return listManufacturers;
        }



Таблица Items имеет поля subCategoryId и manufacturerId связанные вторичным ключом соответственно с таблицами SubCategories и Manufacturers. В методе GetStartManufacturers получаем subCategoryId и нужно вытащить названия всех производителей, модели(таблица Items) которых имеют subCategoryId который пришёл в метод.
...
Рейтинг: 0 / 0
24.09.2014, 14:39
    #38756216
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
ну так не нужен цикл

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public List<Manufacturer> GetStartManufacturers(int idSubCategory)
        {
            using (ShoppingEntity db = new ShoppingEntity())
            {
                 listItems = db.Items.Where(n => n.subCategoryId == idSubCategory).ToList();
                 return db.Manufacturers.Where(b => listItems.Any(x => x.manufacturerId == b.IdManufacturer)).ToList();             
            }                   

        }
...
Рейтинг: 0 / 0
24.09.2014, 18:47
    #38756603
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Исключение на последней строке :
Код: c#
1.
Не удалось создать константу с типом "ShopManagerDataNamespace.Item". В этом контексте поддерживаются только типы-примитивы и типы перечисления.
...
Рейтинг: 0 / 0
25.09.2014, 12:32
    #38757327
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public List<Manufacturer> GetStartManufacturers(int idSubCategory)
        {
            using (ShoppingEntity db = new ShoppingEntity())
            {
                 var listItems = db.Items.Where(n => n.subCategoryId == idSubCategory).ToList();
                 return db.Manufacturers.Where(b => listItems.Any(x => x.manufacturerId == b.IdManufacturer)).ToList();             
            }                   

        }
...
Рейтинг: 0 / 0
26.09.2014, 14:35
    #38758942
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
Та же ошибка!?
...
Рейтинг: 0 / 0
26.09.2014, 16:22
    #38759123
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удаётся привести объект к типу.
ermanТа же ошибка!?
бросай это дело
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся привести объект к типу. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]