powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся привести объект к типу.
11 сообщений из 11, страница 1 из 1
Не удаётся привести объект к типу.
    #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
Не удаётся привести объект к типу.
    #38756110
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Distinct()
это зачем?

может .FirstOrDefault() поможет?
...
Рейтинг: 0 / 0
Не удаётся привести объект к типу.
    #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
Не удаётся привести объект к типу.
    #38756163
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то вы непонятное задумали.

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

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



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


давайте сюда весь код со всеми объявлениями и главное саму задачу, что вы пытаетесь этим кодом решить
...
Рейтинг: 0 / 0
Не удаётся привести объект к типу.
    #38756188
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо никакого цикла.
Код: c#
1.
db.Manufacturers.Where(b => listItems.Constraints(b.IdManufacturer).Distinct();
...
Рейтинг: 0 / 0
Не удаётся привести объект к типу.
    #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
Не удаётся привести объект к типу.
    #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
Не удаётся привести объект к типу.
    #38756603
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исключение на последней строке :
Код: c#
1.
Не удалось создать константу с типом "ShopManagerDataNamespace.Item". В этом контексте поддерживаются только типы-примитивы и типы перечисления.
...
Рейтинг: 0 / 0
Не удаётся привести объект к типу.
    #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
Не удаётся привести объект к типу.
    #38758942
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Та же ошибка!?
...
Рейтинг: 0 / 0
Не удаётся привести объект к типу.
    #38759123
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ermanТа же ошибка!?
бросай это дело
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удаётся привести объект к типу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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