我正在为我的一个项目使用实体框架和MVC结构。实体框架 - 为每个表单独模型是必要的?
由于EF管理所有与数据库相关的变化和“更新模型从数据库”我们得到的最新型号。
所以我需要我的每表来使用它作为一个对象,并设定值成的创建单独的model.cs类。
更具体地讲, 整个项目使用Ajax调用其所有操作。 在这些Ajax调用中,我将值传递给JSON中的数据。
现在,在控制器的水平我需要检索从JSON值。
对于那个如何使用我的实体模型特定的表?
我是否需要为每个表创建模型?
无法自动为每个表格生成模型?
更新: 参考代码添加。
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型号我下面的正确方式或不?
我只是想知道,如果我们在带有EDMX的模型文件夹中有TableName.cls文件,那是好的做法还是不行? 如果没有请让我知道如何避免这种情况。 – ParthKansara
您是否尝试使用Visual Studio提供的内置模板创建EF模型和上下文?这将创建必要的课程供您直接使用。现在为了显示数据,建议根据要显示的数据创建视图模型类。一个视图模型只能表示数据库类或可以组合多个数据库类。如果你有意见只在一个数据库类上执行CRUD,那么一对一视图模型更有意义。 –
所以我需要使用由EF生成的“SpName_Result”类来使它在我的情况下工作,对吧?你在说什么Build Template,T4吗? – ParthKansara