Выбор объекта на основе его свойства TypeCode - PullRequest
0 голосов
/ 15 июня 2011

Я работал над программой Survey в C # (Silverlight) с Entity Framework Данные хранятся в одной таблице, называемой определением вопроса, где я сохраняю все определения вопроса.

Я задаю вопрос другого типа на основе TypeCode - это строка типа char "T" - для текста, "O" для параметров и т. Д.

В любом случае, как бы вы структурировали свой дизайн таким образом, чтобы было легко получить специфический для вопроса класс . В моем случае у меня есть форма, в которой человек может щелкнуть добавить новый вопрос, а затем он заполняет название вопроса, текст и type of the question в виде вкладок. Таким образом, человек может нажать на конкретную вкладку. Я как бы потерялся, как справиться с этим. Я могу поставить свой базовый вопрос, например. LabelQuestion. Также, когда человек управляет вопросом, ему нужно нажать на вопрос, а затем мне нужно написать что-то, что автоматически приведёт этот вопрос к конкретному типу . Насколько я могу судить по моим ограниченным знаниям C # и Entity Framework, я мог сделать следующее.

  • Расширить QuestionDefinition табличный объект, который сделан структурой сущности в моем базовом вопросе. Так что мне не нужно инкапсулировать свойство Question внутри него. Это было бы очень легко связать и управлять. Однако я не уверен насчет структуры сущностей и того, как она справится с этим, поскольку больше не будет QuestionDefinition.
  • Сделайте то, что я сделал, и привяжите непосредственно к Question свойству внутри класса и используйте его в качестве оболочки. Все свойства, которые содержатся в этих классах, специфичных для типа , будут только установщиками и будут записывать в свойство Question.

Мне не хватает других решений? Какие решения лучше и многоразовее. Как бы вы это сделали?

Class Diagram

1 Ответ

1 голос
/ 15 июня 2011

Я бы пошел со вторым подходом: «Сделай то, что я сделал, и свяжи напрямую со свойством Question внутри класса и используй его в качестве оболочки. Все свойства, содержащиеся в этих классах, специфичных для типа, будут только установщиками и будут писать вВопрос собственности. "Также кастинг не будет проблемой, так как у вас уже есть информация о типе вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...