C# 从表单插入数据库中的多个表

C# 从表单插入数据库中的多个表,c#,sql,linq,entity-framework,C#,Sql,Linq,Entity Framework,几天来,我一直在寻找解决我手头障碍的方法,但我没有找到我需要继续下去的确切方法,我被卡住了 我要做的是将firstName、lastName和subject注册到数据库中的两个表中,其中一个表包含firstName和lastName。第二个表仅包含课程 我在stackoverflow中发现了许多类似于此主题的帖子,但由于某些原因,我无法绕过这些例子 观点: <form action="/Default/Page" method="post"> <input type="t

几天来,我一直在寻找解决我手头障碍的方法,但我没有找到我需要继续下去的确切方法,我被卡住了

我要做的是将firstName、lastName和subject注册到数据库中的两个表中,其中一个表包含firstName和lastName。第二个表仅包含课程

我在stackoverflow中发现了许多类似于此主题的帖子,但由于某些原因,我无法绕过这些例子

观点:

<form action="/Default/Page" method="post">
   <input type="text" name="firstName" />
   <input type="text" name="lastName" />
   <input type="text" name="subject" />
   <input type="submit" value="submit" />
</form>
模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication2.Models
{

public class Model
{
    public Name Pupil { get; set; }
    public Course Study { get; set; }
}

public class Name
{
    public string First { get; set; }
    public string Last { get; set; }
}

public class Course
{
    public string Subject { get; set; }
}

}
DbContext类包含两个数据库集,分别是名称和课程

到目前为止,我尝试使用上下文类中的对象,但intellisense只显示db.savechanges,它没有向我提供将对象dat添加到数据库中的方法。我尝试过一些LINQ查询,但因为我对查询不是很熟悉,所以我被卡住了

查询:

var data = from s in db.Names where dat.Pupil.First equals
然后我的IDE只有红色的曲线,没有显示任何更多的intellisense支持

如何使用Entity Framework将试图通过表单收集的信息输入数据库中的两个表中

如何使用LINQ查询将相同的信息输入到表中

where的第一个参数必须来自内部

否则:

<form action="/Default/Page" method="post">
   <input type="text" name="firstName" />
   <input type="text" name="lastName" />
   <input type="text" name="subject" />
   <input type="submit" value="submit" />
</form>

在这种情况下,您可以使用以下命令使用LINQ将数据插入数据库

db.Models.Add(dat);
db.SaveChanges();

将模型添加到db上下文后,必须使用SaveChanges方法

我收到一个错误System.Data.Entity.Infrastructure.DbUpdateException:更新Entries时出错。它解释说表中有其他结构,以及要发送到db的其他结构。请提供更多详细信息。更好的方法是创建两个表:名称和课程
<form action="/Default/Page" method="post">
   <input type="text" name="firstName" />
   <input type="text" name="lastName" />
   <input type="text" name="subject" />
   <input type="submit" value="submit" />
</form>
public Class App2Context : DbContext
{
    public DbSet<Model> Models {get;set;}
}
public Class App2Context : DbContext
{
   public DbSet<Name> Names {get;set;}
   public DbSet<Course> Courses {get;set;}
}
public ActionResult page(FormCollection collection)
{
    App2Context db = new App2Context();
    Model dat = new Model();

    dat.Pupil.First = collection["firstName"];
    dat.Pupil.Last  = collection["lastName"];
    dat.Study.Subject = collection["Subject"];

    db.Models.Add(dat);
    db.SaveChanges();

    return View("Page2");
}
db.Models.Add(dat);
db.SaveChanges();