嗨,我已经读了很多,但不能真正弄清楚这是如何工作的。按照this教程,我不太清楚如何在正确完成外键映射的情况下同时向两个模型输入数据。
假设我有2个模型(遵循教程),例如,学生和注册,我想同时向这两个表输入数据,查看其他堆栈溢出帖子,我发现有两种方法可以将两个视图合并到模型中,要么创建一个“大视图”,要么使用我在本例中所做的部分视图。因此,通过向控制器返回2个对象并将其保存到数据库中,如下所示,它是有效的,除了注册与通过studentID (外键)与学生没有任何链接。有没有一种方法可以设置它或将它绑定在一起?
目前,我可以将两个单独的数据集保存到数据库中。我好像就是想不出怎么设置外键。
我现在在2个DBs中拥有的是
Student | Enrollment
ID LastName ID <Some Column> StudentID
1 XXX 1 XXX NULL (Need this to be 1)如何将StudentID设置为1?
public async Task<IActionResult> Create([Bind("ID,LastName")] Student student, [Bind("<Some data inside enrollment>")] Enrollment enrollment)
{
if (ModelState.IsValid)
{
_context.Add(student);
await _context.SaveChangesAsync();
_context.Add(enrollment);
await _context.SaveChangesAsync();
return View(student);
}非常感谢!非常感谢您的帮助!:)
发布于 2018-12-28 02:13:29
这会有帮助的
var resultStudent = _context.Add(student);
enrollment.student_id = resultStudent.id;
_context.Add(enrollment);
await _context.SaveChangesAsync();或
enrollment.Student = student;
_context.Enrollments.Add(enrollment);
await _context.SaveChangesAsync();发布于 2018-12-28 11:26:39
修改了Simonare的答案,这对我很有效。似乎var resultStudent不是必需的,但是在控制器中设置ID的一般思路已经存在。
_context.Add(student);
enrollment.studentID = student.ID;
_context.Add(enrollment);
await _context.SaveChangesAsync();https://stackoverflow.com/questions/53948414
复制相似问题