Новичок - объединение родительских и дочерних представлений на одной странице - PullRequest
4 голосов
/ 02 декабря 2011

Я пытаюсь выучить mvc - заранее прошу прощения за все глупые вопросы.Что я сделал, так это создал проект mvc на основе существующей базы данных, а затем я анализировал его, чтобы попытаться понять, что было создано для меня, и как создать свой собственный материал.К сожалению, поскольку я новый пользователь stackoverflow, я не могу опубликовать изображение своей структуры проекта.
У меня есть родительский контроллер и дочерний контроллер, созданные с помощью мастера на основе 2 отдельных таблиц, которые есть в моей модели.Я хочу отобразить оба из них в одном представлении - в конечном итоге в веб-сетке и иметь возможность изменять данные для любого родительского элемента или дочернего элемента.Вы можете игнорировать CombinedController сейчас.Я немного читал, и я узнал, что я должен создать модель представления, которая объединяет родительский и дочерний элементы на уровне модели, а затем перейти оттуда.

, поэтому я создал этот класс:

Imports System.Data.Objects.DataClasses
Public Class ParentAndChild

    Public Property myChildren As IEnumerable(Of Child)
    Public Property myParent as Parent

End Class

У меня есть несколько вопросов:

Вопрос 1
Нужно ли мне добавлять эту сущность ParentAndChild в файл .edmx, чтобы создать контроллер и просмотреть его?Я предполагаю, что я действительно спрашиваю: нужно ли мне сначала создать представление в базе данных sql, показать объект в .edmx, а затем создать контроллер?Или я могу просто объединить две сущности в классе?Это то, что я сделал до сих пор.У меня нет базы данных SQL в моей базе данных, объединяющей эти две таблицы.Причина, по которой я спрашиваю, состоит в том, что, когда я создаю свой контроллер, если я хочу получить все CRUD бесплатно, я должен создавать их с помощью Entity Framework.Но я не знаю, что указать для контекста данных.

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

Вопрос 3
Как структура сущностей знает, какие модули возвращать, когда я использую свой новый класс?Я нигде не определяю отношения ... Это потому, что в файле .edmx система знает отношения между таблицами?

1 Ответ

1 голос
/ 08 декабря 2011

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

Примером контроллера может быть:

public ActionResult Parent(int id)
{
    var parent = context.Foo.Single(x => x.Id == id);
    return View(parent);        
}

Если вам нужно создатьТаблицу всех дочерних объектов вы можете сделать примерно так:

@foreach(var item in Model.Children)
{
    <td>@item.Property</td>
    <td>@item.Property2</td>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...