【发布时间】:2017-07-05 14:37:19
【问题描述】:
我正在为我的一个项目使用具有 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 模型我是否遵循正确的方法?
【问题讨论】:
-
我只想知道,如果我们的模型文件夹中有 TableName.cls 文件和 EDMX,这是否是一种好习惯?如果没有,请告诉我避免这种情况的方法。
-
您是否尝试使用 Visual Studio 提供的内置模板创建 EF 模型和上下文?这将创建必要的类供您直接使用。现在要显示数据,建议根据您要显示的数据创建视图模型类。一个视图模型只能代表 db 类,也可以组合多个 db 类。如果您有视图仅在一个 db 类上执行 CRUD,那么一对一的视图模型更有意义。
-
所以我需要使用 EF 生成的“SpName_Result”类来使其适用于我的情况,对吗?你说的是哪个构建模板,是 T4 吗?
-
"SpName_Result" 看起来像是为存储过程的输出生成的类。为什么要编辑存储过程的输出。无论如何,如果这是您的要求,那么是的,您需要这样做。您可以在线获取大量带有 EF 的示例 MVC 应用程序,您可以使用它们来开始您的项目。
-
我有一些关于代码的问题,但在这里讨论它们是不合适的,因为它已经建议将此讨论移至聊天。如果您想在私人聊天中进一步讨论,请告诉我。
标签: c# json ajax asp.net-mvc entity-framework