Реализация свойств навигации в Entity Framework - PullRequest
1 голос
/ 02 октября 2010

Эй, ребята, Я изучал MVC 2, и я почти все понял, за исключением модельной части, я понимаю, что такое модель, но на самом деле ее реализация приводит меня в замешательство.

Вот моя ситуация, у меня есть БД с 3 таблицами;

Идеи - таблица идей Теги - таблица тегов IdeaTag - таблица ссылок, соединяющая две вышеуказанные таблицы через FKs

Таким образом, при использовании конструктора Entity Framework (.edmx) в VS2010 я получаю 2 класса, созданные в Designer, которые, очевидно, отображаются в мои таблицы БД и свойства навигации в Idea для тегов и Idea для тегов.

Так что все в порядке, пока я на самом деле не попытаюсь добавить теги к идее, каков наилучший способ работы со свойствами навигации? Я хотел добавить текстовое поле, которое затем сопоставлялось бы со свойством Tags в классе Idea, но я не уверен, как мне поступить.

Большинство руководств по MVC, в которых обсуждаются EF или Linq to SQL, довольно просты.

Если есть какие-либо предложения по учебным пособиям или видеоурокам, в которых обсуждаются вопросы о свойствах навигации и как с ними лучше всего работать, я с радостью приму это к сведению. В качестве альтернативы, если есть лучший способ реализовать это, я бы тоже с удовольствием посмотрел на это.

1 Ответ

0 голосов
/ 02 октября 2010

Поскольку это в основном отношение «многие ко многим», ознакомьтесь с принятым ответом на этот вопрос .

Он охватывает сценарий, который вы ищете. В вашем случае «ID», вероятно, является фактическим тегом, то есть «Entity Framework» или чем-то еще.

Используя подход в этом примере, вы можете получить текстовое поле с разделенным запятыми (или чем-то еще) списком имен тегов. Разделив содержимое текстового поля, вы получите массив тегов, которые должны быть в коллекции Idea.Tags после того, как вы закончите.

Единственное осложнение, которое у вас есть, я думаю, вы хотите автоматически создавать «новые» теги. Поэтому, возможно, вам нужно проверить, существует ли тег перед его присоединением (чтобы добавить его в коллекцию Idea.Tags), если его не существует, вместо того, чтобы присоединять его, вы просто добавите его, чтобы новый тег был вставлен .

...