【发布时间】:2014-12-09 19:23:42
【问题描述】:
我刚开始学习 C# 和 .NET。我的问题可能很简单,但任何帮助都会很棒。
我的场景很简单。我有两个三个表,Student、Courses 和 Enrollments,定义如下。
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace MyFirstProject.Models
{
public class Student
{
[Key]
public int StudentId { get; set; }
[Required(ErrorMessage = "Custom error message: First Name is required")]
[MaxLength(50)]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Custom error message: Last Name is required")]
[MaxLength(50)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime EnrollmentDate { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace MyFirstProject.Models
{
public class Course
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CourseId { get; set; }
public string CourseName { get; set; }
[Range(0, 5, ErrorMessage = "Number of credits must be between 0 and 5")]
public int TotalCredits { get; set; }
public ICollection<Enrollment> Enrollments { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace MyFirstProject.Models
{
public class Enrollment
{
public int EnrollmentId { get; set; }
public int StudentId { get; set; }
public int CourseId { get; set; }
[DisplayFormat(DataFormatString = "{0:#.#}", ApplyFormatInEditMode = true, NullDisplayText = "No Grade")]
public decimal? Grade { get; set; }
//Every enrollment has at least one student and one course.
public virtual Student student { get; set; }
public virtual Course course { get; set; }
}
}
现在,如果我想在一个数据库事务中向 Student 表和 Enrollment 表添加记录,我将如何去做。 假设 Course 表中有三门课程: CourseId:1,CourseName:数学,TotalCredits:4 CourseId:2,CourseName:物理,TotalCredits:4 CourseId: 3, CourseName: Chemistry, TotalCredits: 4
如果我尝试添加学生和注册,我将如何获得要添加的学生的 ID?伪代码如下:
Student s = new Student();
s.FirstName = "John";
s.LastName = "Doe";
db.Student.Add(s);
db.SaveChanges();
Enrollment e = new Enrollment();
e.CourseId = 1;
e.StudentId = s.StudentId //I need to get the student id for the above added student. How?
db.Enrollment.Add(e);
db.SaveChanges();
【问题讨论】:
-
这是实体框架,还是什么风格的 LINQ?
标签: sql asp.net-mvc entity-framework