例如下面两个表。Item表中的ProjectID 是外键,我现在需要同时往两张表插入数据。
-----------------------------------------------------
Project :ProjectID NAME code
Item :ItemID ProjectID ItemName
说明:
在页面中,录入NAME,code,ItemName之后,点保存。然后数据会同时保存到两张表中,求解~~~
谢谢了!
插入数据跟MVC没关系哦。 访问DB的是什么 EF? NH? ADO.Net?
正解
@八戒的师傅: 如果2个表的数据要门同时都插入成功,要么失败就都不插入,就采用事务
保存一张跟两张有区别吗?db.SubmitChanges();这句话之前都不是真的存进数据库的。
数据访问层是怎么搞的???
1 //Model中代码: 2 public class ProjectContext:DbContext 3 { 4 public ProjectContext():base("这里是数据库连接字符串"){} 5 public DbSet<Project> Project{get;set;} 6 public DbSet<Item> Item{get;set;} 7 } 8 [Table("Project")] 9 public class Project 10 { 11 public int ProjectID{get;set;} 12 public string Name{get;set;} 13 public string Code{get;set;} 14 } 15 [Table("Item")] 16 public class Item 17 { 18 public int ItemID{get;set;} 19 public int ProjectID{get;set;} 20 public string ItemName{get;set;} 21 } 22 //Controllers中代码: 23 private ProjectContext db=new ProjectContext(); 24 public ActionResult Save(){return View();} 25 [HttpPost] 26 public ActionResult Save(Project project) 27 { 28 Item item=new Item{ ProjectID=project.ProjectID,ItemName=""} 29 db.Project.ADD(project); //给Project表加数据 30 db.Item.ADD(item); //给Item表加数据 31 db.SaveChanges(); //保存更改 32 return View(); 33 }
先插入主表 再插入外键表插入的时候调用方法Insert不是 InsertAndSubmit() 最后 SubmitChanges
写一个sql语句,查询出你要的这三个字段,然后再controller里写个插入的方法,既然有了外键了,写sql语句的时候加个join不就行,这样插入到一张表中 和 插入到两张表中有区别吗?