首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1视图创建操作中的.NET核心EF核心2型号

1视图创建操作中的.NET核心EF核心2型号
EN

Stack Overflow用户
提问于 2018-12-28 00:58:45
回答 2查看 143关注 0票数 1

嗨,我已经读了很多,但不能真正弄清楚这是如何工作的。按照this教程,我不太清楚如何在正确完成外键映射的情况下同时向两个模型输入数据。

假设我有2个模型(遵循教程),例如,学生和注册,我想同时向这两个表输入数据,查看其他堆栈溢出帖子,我发现有两种方法可以将两个视图合并到模型中,要么创建一个“大视图”,要么使用我在本例中所做的部分视图。因此,通过向控制器返回2个对象并将其保存到数据库中,如下所示,它是有效的,除了注册与通过studentID (外键)与学生没有任何链接。有没有一种方法可以设置它或将它绑定在一起?

目前,我可以将两个单独的数据集保存到数据库中。我好像就是想不出怎么设置外键。

我现在在2个DBs中拥有的是

代码语言:javascript
复制
Student      | Enrollment
ID LastName    ID <Some Column> StudentID
1  XXX         1  XXX           NULL (Need this to be 1)

如何将StudentID设置为1?

代码语言:javascript
复制
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);
        }

非常感谢!非常感谢您的帮助!:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-28 02:13:29

这会有帮助的

代码语言:javascript
复制
var resultStudent = _context.Add(student);
enrollment.student_id = resultStudent.id;
_context.Add(enrollment);
await _context.SaveChangesAsync();

代码语言:javascript
复制
enrollment.Student = student;
_context.Enrollments.Add(enrollment);
await _context.SaveChangesAsync();
票数 2
EN

Stack Overflow用户

发布于 2018-12-28 11:26:39

修改了Simonare的答案,这对我很有效。似乎var resultStudent不是必需的,但是在控制器中设置ID的一般思路已经存在。

代码语言:javascript
复制
_context.Add(student);
enrollment.studentID = student.ID;
_context.Add(enrollment);
await _context.SaveChangesAsync();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53948414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档