如何查找包含列成员的列数据对象名称

时间:2012-02-14 00:11:02

标签: c# asp.net-mvc linq-to-sql

我正在尝试使用Link to SQL插入记录。我知道我需要创建一个包含要提交的列数据的新对象。但是如何识别该对象名称?

我已成功删除记录,但无法插入记录,因为我无法创建新的“学生”对象

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Student.Models;

namespace Student.Controllers
{
    public class StudentController : Controller
    {
        //
        // GET: /Student/

        private IStudentRepository  _repository;

        public StudentController() : this(new StudentRepository())
        {
        }

        public StudentController(IStudentRepository repository)
        {
            _repository = repository;
        }

        public ActionResult Index()
        {    
             return View(_repository.ListAll());
        }


        public ActionResult RemoveStudent(int id)
        {

            StudentDataContext student= new StudentDataContext();

            var std = student.Students.Single(h => h.StudentID == id);
            student.Students.DeleteOnSubmit(std);
            student.SubmitChanges();
            return Content("Student " + id + " Removed");
        }

        public ActionResult AddStudent(int studentID)
        {
            StudentDataContext student= new StudentDataContext();

            var std = student.Students.FirstOrDefault(h => h.StudentID == studentID);

            if (std == null || std.StudentID < 1)
            {

            student.Students.InsertOnSubmit(std);
            student.SubmitChanges();
            return Content("Student " + id + " Added");

            }

            return Content("Student  " + studentID + " is already present");
        }

先谢谢

1 个答案:

答案 0 :(得分:1)

您需要创建一个new Student() - 或者您对象的名称。

if (std == null || std.StudentID < 1)
{
    // create a new student before trying to insert
    std = new Student() { StudentID = id };

    student.Students.InsertOnSubmit(std);
    student.SubmitChanges();
    return Content("Student " + id + " Added");
}

从我的阅读中你的问题是

  

但是如何识别该对象名称?

即。 “这个班的名字是什么?”

您可以在LINQ-to-SQL设计器上看到这一点。类的名称与描述表的设计器上的对象名称相同。该类的默认名称与表相同 - 但如果它与该名称的另一个类冲突,则它将重命名为Student1