我已经找到了解决我手头障碍数天的解决方案,但我还没找到我需要继续做什么,我被卡住了!
我要做的是将“firstName”,“lastName”和“subject”注册到数据库中的两个表中,其中一个表包含名字和姓氏。第二个表仅包含课程。
我在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;
using System.Web.Mvc;
using WebApplication2.Models;
using System.Data;
using System.Data.Entity;
namespace WebApplication2.Controllers
{
public class DefaultController : Controller
{
[HttpPost]
public ActionResult page(FormCollection collection)
{
App2Context db = new App2Context();
Model dat = new Model();
dat.Pupil.First = collection["firstName"];
dat.Pupil.First = collection["firstName"];
dat.Study.Subject = collection["Subject"];
return View("Page2");
}
}
}
模特:
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类包含两个DbSets,即名称和课程。
我到目前为止尝试的是使用上下文类中的对象,但intellisense只显示db.savechanges()它没有提供将对象dat添加到数据库的方法。我已经尝试了一些LINQ查询,但由于我对查询不是很熟悉,所以我只是被卡住了。
查询:
var data = from s in db.Names where dat.Pupil.First equals
然后我的IDE只有红色波浪线,并且不再显示智能感知支持。
如何使用Entity Framework将我尝试通过表单收集的信息输入到数据库中的两个表中?
如何使用LINQ查询在表中输入相同的信息?
答案 0 :(得分:0)
在这种情况下,您可以使用以下方法使用LINQ将数据插入数据库。
db.Models.Add(dat);
db.SaveChanges();
将模型添加到db上下文后,必须使用SaveChanges()方法。
答案 1 :(得分:-1)
第一个参数必须来自内部
var data = from s in db.Names where s.Name equals dat.Pupil.First
否则:
<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>
如果您的EF看起来像:
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");
}