2012-11-10 88 views
0

我有兩個表,而我必須做出嵌件如何使實體框架多個插入在ASP.NET MVC

表1:項目

  • 專案編號
  • 名稱
  • 描述

表2:訪問

  • ID
  • 用戶id
  • 專案編號

現在我使用ASP.NET MVC 4與實體框架,現在我的問題是如何使插入到這兩個表?

我的意思是我知道我可以插入到表1使用EF,但然後我需要projectId(它是與第一次插入生成),使第二次插入。

我不確定如何去做。請有人指導我這個

回答

3

當您保存對象時,EF將填充自動生成的插入的對象重點領域:)

public ActionResult Index() { 

    var ctx = new FooBarDbContext(); 

    var foo = new Foo(); 
    foo.Bar = "FooBar"; 
    ctx.Foos.Add(foo); 
    ctx.SaveChanges(); 

    // now you have the Id for Foo object. 

    var bar = new Bar(); 
    bar.FooId = foo.Id; 
    ctx.Bars.Add(bar); 
    ctx.SaveChanges(); 

    // do what you need now. 
} 
2

公衆的ActionResult指數(

{

ProjectContext db = new ProjectContext(); 
var project = new Project(); 
var access = new Access(); 

project.Name = 「Project Name」; 
project.Description = 「Project Description」; 

access.UserId = 1; // Fill with your userId 
access.Project = project; 

db.Access.Add(access); 
db.SaveChanges();// save project and access 

}

//在Models文件夾

公共類ProjectContext:的DbContext

{

public DbSet<Project> User { get; set; } 
public DbSet<Access> Contact { get; set; } 

}

//另外,在訪問類必須定義項目

公共類訪問

{

[Key] 
public int id{ get; set; } 
public int UserId {get;set;} 
[ForeignKey("Project")] 
public int ProjectId { get; set; } 

public virtual Project Project { get; set; } 
// This line make relation between project and access 

}