none
Помогите разобраться с кодом RRS feed

  • Вопрос

  • Доброго времени суток. Разобрался с одной из проблем по подключению БД, но теперь столкнулся с другой. Я работаю с этим гайдом Ссылка . Подскажите, пожалуйста, что означает эта строка  ObjectQuery<Product> products = dataEntities.Products; <Product> - это таблица, дальше задается сущность, как я понимаю. А что вот это такое? dataEntities.Products. Разобрался бы может и сам, но БД скачать тестовую нельзя. Говорит, страница не существует..Спасибо заранее....
    9 февраля 2013 г. 7:10

Ответы

  • По поводу вашей ошибки. Как я вам уже писал выше, у вас возвращается не запрос, а коллекция. Поэтому, у вас и ругалось на приведение типов. Но эта строка не нужна. Можно сразу данные брать из БД и подсовывать в ItemsSource (единственно, на картинке видно, надо не саму сущность подсовывать, а либо результат запроса Where, либо как у меня преобразовав коллекцию в массив):

    • Помечено в качестве ответа AlexBelkevich 11 февраля 2013 г. 9:54
    11 февраля 2013 г. 9:48
    Отвечающий

Все ответы

  • Это объект представляющий коллекцию сущностей, содержит записи из таблицы. Грубо говоря - это объектное представление таблицы.
    9 февраля 2013 г. 8:18
    Модератор
  • а не поможете на примере?Если у меня есть таблица, например, Ламинат. Мне из этой таблицы надо вытащить поля в DataGrid.. как будет выглядеть этот код?ObjectQuery<Product> products = dataEntities.Products
    9 февраля 2013 г. 8:49
  • Там же детально всё на простом примере показано как, и это тоже в том числе. Что для вас остаётся непонятным ещё?
    9 февраля 2013 г. 10:27
    Модератор
  • Я же написал, что мне остается непонятным. dataEntities.Products. - Products - это что??
    9 февраля 2013 г. 11:42
  • В данном случае, Products - это имя таблицы. Если у вас таблица в базе называется Laminats, то в вашем случае код будет:

    ObjectQuery<Laminat> laminats = dataEntities.Laminats

    10 февраля 2013 г. 5:03
    Отвечающий
  • Я сделал вот так (таблица Ламинат - по русски (можно ли?)). ObjectQuery<Ламинат> laminat = dataEntities.Ламинат. Выходит ошибка Неявное преобразование типа "System.Data.Entity.DbSet<StriyMag.Ламинат>" в "System.Data.Objects.ObjectAuery<StroyMag.Ламинат>" невозможно

    10 февраля 2013 г. 10:45
  • Ой, что то я копипастил, и не обратил внимания, что вы с сущностями на прямую работаете. Все, у вас dataEntities.Ламинат возвращает коллекцию из видов ламината которые храняться в таблице. Можете, например, вывести все их на экран (Name - это имя столбца из базы данных):

    forech (var item in dataEntities.Ламинат)
    {
        Console.WriteLine(item.Name);
    }
    10 февраля 2013 г. 11:22
    Отвечающий
  • Так и делаю, но ошибка остается) Если строку  ObjectQuery<Ламинат> laminat = dataEntities.Ламинат удаляю и оставляю цикл, то вообще ничего не выводится.. может косяк все таки в ObjectQuery?... Мне надо в DataGrid это вывести.. Я никогда раньше не подключал БД к WPF, поэтому и проблемы возникают...
    10 февраля 2013 г. 11:41
  • Хм, т.е. присвоение в ItemsSource вашего датагрида вот этой штуки: dataEntities.Ламинат не работает?

    10 февраля 2013 г. 11:45
    Отвечающий
  • Неа.. у меня ошибка. подчеркивается dataEntities.Ламинат.. Может, я скину проект сюда, а вы посмотрите, если вам не сложно?

    http://sdrv.ms/14Lfmdc - вот сам проект..

    • Изменено AlexBelkevich 10 февраля 2013 г. 11:52
    10 февраля 2013 г. 11:47
  • Давай, выложи на файлообменник какой нибудь.

    10 февраля 2013 г. 11:50
    Отвечающий
  • SkyDrive подходит?)
    10 февраля 2013 г. 11:56
  • Да.

    10 февраля 2013 г. 13:12
    Отвечающий
  • http://sdrv.ms/14Lfmdc  вот) архив) (на всякий случай еще раз повторяю)


    • Изменено AlexBelkevich 10 февраля 2013 г. 13:34
    10 февраля 2013 г. 13:34
  • Сидел сидел..разбирался...Надежда только на Вас:)
    10 февраля 2013 г. 18:02
  • Да мы рады помочь, честно. Просто это совсем базовые вещи, нужно попытаться самому прочитать и понять. Если не понятно, читайте ещё и еще. Не один Вы такой, со всеми нами в своё время такое было. Начните с базовых вещей, в примере который привели Вы детально всё написано. Попробуйте его в точь выполнить, потом шаг дальше.
    10 февраля 2013 г. 18:06
    Модератор
  • Да я бы сделал на примере...но БД не качается оттуда...я и пытаюсь сделать, тем более что там шагов немного. но все уже перепробовал... Ошибка вылезает...

    Я сам человек, который до последнего с задачей бьется, но никак не решит. Но тут уже неделю не могу понять, какие там значения должны быть... Опыта не хватает с этим, а больше то инфы нигде нет..
    • Изменено AlexBelkevich 10 февраля 2013 г. 18:11
    10 февраля 2013 г. 18:10
  • По поводу вашей ошибки. Как я вам уже писал выше, у вас возвращается не запрос, а коллекция. Поэтому, у вас и ругалось на приведение типов. Но эта строка не нужна. Можно сразу данные брать из БД и подсовывать в ItemsSource (единственно, на картинке видно, надо не саму сущность подсовывать, а либо результат запроса Where, либо как у меня преобразовав коллекцию в массив):

    • Помечено в качестве ответа AlexBelkevich 11 февраля 2013 г. 9:54
    11 февраля 2013 г. 9:48
    Отвечающий
  • Спасибо огромное! Получается, мне надо запрос именно делать) А не коллекцию) А то по ходу и связи отображаются в таблице (вы тоже можете на это взглянуть, если вправо таблицу прокрутите))спасибо большое!)
    11 февраля 2013 г. 9:54