Другая вероятная причина заключается в том, что вы используете IEnumerable
для своего свойства вместо ICollection
Итак, вместо:
public class This
{
public long Id { get; set; }
//...
public virtual IEnumerable<That> Thats { get; set; }
}
Сделайте это:
public class This
{
public long Id { get; set; }
//...
public virtual ICollection<That> Thats { get; set; }
}
И ты хмурый дори ... глупое дело потерять 2 часа ...
Вы не указываете, интересуетесь ли вы аппаратными или программными аспектами робототехники. Если вы в первую очередь заинтересованы в программном обеспечении и не хотите тратить деньги на аппаратное обеспечение, вам следует подумать о среде моделирования.
Подумайте о вещах, таких как симуляторы полета или игровые программы. Вы можете «летать» на самолете, не покупая его. Вы также можете узнать много в процессе.
Microsoft Robotics Studio имеет версию, которую вы можете скачать бесплатно, которая позволяет вам моделировать Lego Mindstorms, а также писать программы для него. Если вы студент, вы также можете получить полную версию бесплатно.
Конечно, если вы хотите потратить деньги, нет ничего лучше настоящего, и я уверен, что вам будет очень весело с ним.
Я только что узнал, что LabView также можно использовать для программирования Lego Mindstorms. Взгляните на: http://www.ni.com/academic/mindstorms/ У них есть версия LabView для студентов со скидками.
Я пару лет тренировал команду Первой лиги Lego , и мы использовали роботов NXT. Команда состояла из 6-х, 7-х и 8-х классов, и они с готовностью могли изучить среду графического программирования и разработать с ее помощью довольно сложные программы. Как инструкторы, мы руководствовались их хорошими практиками в области программного обеспечения (требования, дизайн, модульность, документация, тестирование и т. Д.), Но дети сделали свою работу, и они многому научились. Стандартное программное обеспечение NXT является в основном урезанной версией LabView , и его довольно просто использовать, но оно немного глючит. Это было хорошей особенностью для детей - они научились трудному способу часто сохранять свою работу, потому что программное обеспечение может и не работает во время редактирования.
Если вы хотите поиграть с роботами, особенно если вы хотите привлечь и детей, это отличная среда для этого. Но стандартное программное обеспечение является графическим языком программирования, поэтому вы подключаете и настраиваете функциональные блоки, а не пишете код, и некоторые люди не считают это «настоящим» программным обеспечением. Все зависит от того, что вы хотите узнать. Мы использовали стандартное программное обеспечение NXT с детьми только из-за правил конкурса FLL. Если вы предпочитаете использовать процедурные языки, NXT по-прежнему является отличной платформой для обучения, но вам нужно переключиться на альтернативную среду разработки, такую как одна из этих .
Если вы выберете путь Lego, для Mindstorms я определенно рекомендую NQC .
NQC - это язык программирования, который вы можете использовать для программирования роботов Lego Mindstorms, и я обнаружил, что он намного проще, чем перетаскивать узлы в среде в стиле WYSIWYG (именно так входит в комплект поставки программного обеспечения и LabView версия работала).
У меня не было опыта работы с роботом NXT, но если NQC звучит интересно, для NXT есть эквивалент: NBC / NXC .
Стив
Я не знаю, какое программное обеспечение вы хотите использовать, но у MATLAB действительно есть LEGO MINDSTORMS NXT Toolkit . Он обсуждался в некоторых блогах MathWorks , и на файлообменнике MathWorks опубликовано несколько демонстраций (, вот одна ).
У меня есть первый выпуск набора робототехники Lego MindStorms, и я не могу его достаточно похвалить. Начать работу легко, а возможности безграничны. Конструировать вещи - это не только весело, но и приятно воплощать их в жизнь. Это бросает вызов вам как инженеру и как разработчику программного обеспечения. Это заставляет вас по-настоящему оценить и понять хрупкость исследований и разработок робототехники.
Также вышел новый набор NXT. В значительной степени разработанный на основе отзывов пользователей, это лучший робототехнический комплект Lego.
Я не могу дать вам хорошее параллельное сравнение с другими комплектами робототехники (я знаю, что у MS есть один ), но я провел много времени с «мозговыми штурмами» (до того момента, когда я провел презентацию группы пользователей), и я думаю, что это делает программирование приятным и учит основам сенсоров, входов и выходов, которые вам нужны знать с любым комплектом.
Это дает вам основу и делает его забавным, что является отличным началом. Хотя, возможно, есть и более сложные альтернативы ...
Да, Lego Mindstorms великолепен, но не используйте для программирования язык интерфейса LabView G по умолчанию.
Используйте что-то более продвинутое, например, LeJos.
Если вы только начинаете, самое важное - это сообщество поддержки, поддерживающее любой комплект, который вы выберете. MindStorms очень популярен, и я уверен, что у вас не возникнет проблем с поиском ответов на (многие) вопросы, которые у вас возникнут при работе с ним.