Зачем использовать модель стиля LINQ to SQL в приложении, использующем Entity Framework - PullRequest
0 голосов
/ 29 ноября 2011

Я вижу, что многое происходит в MVC3 при использовании Entity Framework, но похоже на модель LINQ to SQL.

public class SomeClass {

    public int Id { get; set; }
    public string username { get; set; }
    public string password { get; set; }
}

Почему и когда необходим этот тип модели при использовании EF? Все, что мне когда-либо нужно было делать в контроллере при использовании EF, я сделал с EF в качестве моей модели, разве это не то, для чего предназначен EF, так что вам больше не нужно писать модели в стиле L2S ???

Я запутался, думая, что ищу учебник с использованием EF, но он действительно использует L2S или я что-то упустил ???

Confused,

Mike.


Торм, ты чемпион! И +1 к Яну, когда я впервые прочитал это, это имеет смысл, хотя я не сталкивался со сценарием, когда мне приходилось это делать, и больше не чувствовал, что что-то упустил.

Но у Торна это есть. Сначала код, что за% & * $!

Первый урок, который я сделал в MVC # что-то, я создал базу данных, заполнил ее фиктивными данными (на это требуется время), но это был первый урок кода, я запустил приложение, и все фиктивные данные исчезли !!! Я понятия не имею, почему существует вариант кода сначала, я всегда запускаю приложение с базой данных. Я думаю, это для людей, которые работают в большой компании и не имеют доступа к базе данных во время написания MVC ??? Несмотря на это, почему бы не создать фиктивную базу данных для тестирования, я всегда так делаю? Я задам этот вопрос в другом посте.

Таким образом, все классы моделей для первого подхода к базе данных с EF автоматически генерируются в файле Model / .Designer.cs! И поэтому вам вообще не нужно писать модели в стиле L2S, EF сделает все за вас.

Кажется, я знаю все, что нужно знать о MVC сейчас, нет!

Приветствия

Mike.

Ответы [ 2 ]

3 голосов
/ 29 ноября 2011

Я думаю, что вы говорите о Viewmodels .

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

MVC - это чистый графический интерфейс, поэтому M в MVC обозначает модель для представления, а не обязательно для модели из уровня персистентности или уровня обслуживания..

Абсолютно распространено определять отдельные классы модели, такие как показанный вами, и сопоставлять классы из контекста EF или L2S с классами модели GUI.

1 голос
/ 29 ноября 2011

Существует два основных подхода к работе с вашей моделью в приложениях Asp.Net MVC.Сначала база данных, а сначала код.Вот хорошее прочтение Сначала код по сравнению с моделью / Сначала база данных

База данных сначала предполагает, что вы создадите модель на уровне БД, а затем импортируете ее в свое приложение.Тогда в ваших приложениях вы не увидите классы моделей, поскольку они генерируются для вас автоматически.

В коде сначала вы начинаете с Plain Old Clr Objects (классов), которые определяют вашу модель.Когда у вас есть эти классы, вы отображаете их в классе DataContext, который сообщает EF, как организовать объекты в коллекции (наборы).Как только вы запустите приложение, EF создаст для вас базу данных.

...