2017-02-16 3 views
0

Я использую Entity Framework с структурой MVC для моего проекта.Entity Framework - нужна отдельная модель для каждой таблицы?

Поскольку EF управляет всеми изменениями, связанными с базой данных, и на странице «Обновить модель из базы данных» мы обновляем модель.

Так что мне нужно создать отдельный класс model.cs для каждой моей таблицы, чтобы использовать его как объект и установить значение в это.

Чтобы уточнить, Весь проект имеет все операции, используя вызов Ajax. В этом вызове Ajax я передаю значения данным в JSON.

Теперь, на уровне контроллера мне нужно получить значение из этого JSON.
Для этого Как я могу использовать мою модель Entity для конкретной таблицы?
Нужно ли создавать модель для каждой таблицы?

Невозможно создать модели для каждой таблицы?

Обновлено: Код ссылки добавлен.

1. 
Let's say 
I have a table Student with , StudentID INT, ClassID INT , Name VARCHAR(). 
2. 
Here is the JavaScript Code 
    function AddStudent() { 
    var data = { "ClassID": 1, "Name": 'ABC' } 

    $.ajax({ 
     url: '/Admin/AddNewStudent', 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     async: false, 
     cache: false, 
     data: JSON.stringify(data), 
     success: function (ServiceResponce) { 
      refreshgird(); 
     } 
    }); 
} 

    3. 
    StudentController.cs 

    public JsonResult AddNewStudent(Student obj) 
      { 
       try 
       { 
        var add = db.AddNewStudent(obj.ClassID, obj.Name).ToString(); 
        return Json(add, JsonRequestBehavior.AllowGet); 
       } 
       catch (Exception ex) 
       { 
        return Json(ex.ToString(), JsonRequestBehavior.AllowGet); 
       } 
      } 

4. Student.cs 
public class Student 
    { 
     public int ClassID{ get; set; } 

     public string Name{ get; set; } 
    } 

Мой вопрос путем создания Student.cs модели я следую правильный путь или нет?

+0

Я просто хочу знать, что если у нас есть файлы TableName.cls в нашей папке моделей с EDMX, это хорошая практика или нет? Если нет, пожалуйста, дайте мне знать, как избежать этого. – ParthKansara

+1

Вы пытались создать EF-модель и контекст, используя встроенный шаблон, предлагаемый visual studio? Это создаст необходимые классы для непосредственного использования. Теперь, чтобы показать данные, рекомендуется создавать классы viewmodel на основе данных, которые вы хотите показать. Одна модель может представлять только класс db или может объединять более одного класса db. Если у вас есть представления для выполнения CRUD только на одном классе db, то одна-на-одну модель просмотра имеет больше смысла. –

+0

Так что мне нужно использовать классы «SpName_Result», созданные EF, чтобы заставить его работать в моем случае, правильно? Какой шаблон сборки вы рассказываете, это T4? – ParthKansara

ответ

1
  1. Если модель EF включена в проект MVC, я бы сказал, нет, вы не должны создавать отдельные модели для каждого объекта - использовать только те, созданные EF.

  2. Если ваш проект MVC разбит на слои (проекты) данных, домена и презентации, вы можете отделить созданные классы данных от EDMX (на уровне данных) и сгенерировать их на уровне домена. См. «Обучение множественному зрению» Джули Лерман «Начало работы с Entity Framework 5» «Разделение классов с расширенными доменами из главы EDMX».

  3. Если вы являетесь пуристом, тогда у вас должно быть не менее 3 слоев (данные, домен и презентация), а объекты домена не должны быть сгенерированы EF. Они должны быть настроены на потребности приложений и загружаться с объектов EF по мере необходимости.

Смежные вопросы