2012-11-10 1 views
0

J'ai deux tables auxquelles je dois faire insérer àComment faire de multiples inserts avec Entity Framework dans ASP.NET MVC

Tableau 1: Projet

  • projectId
  • Nom
  • description de

Tableau 2: Accès

  • id
  • userId
  • projectId

Maintenant, je suis en utilisant ASP.NET MVC 4 avec Entity Framework, maintenant ma question est de savoir comment puis-je faire insérer à la fois ce tableau? Je veux dire que je sais que je peux insérer dans le tableau 1 en utilisant EF, mais j'ai besoin du projectId (qui est généré avec le premier insert) pour faire le second insert.

Je ne suis pas sûr de la façon de procéder. S'il vous plaît quelqu'un me guider sur ce

Répondre

3

Lorsque vous enregistrez un objet, l'EF va peupler l'auto généré des champs clés des objets insérés:

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

Index ActionResult (public)

{

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 

}

// Dans le dossier Modèles

public class ProjectContext: DbContext

{

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

}

// Aussi dans Access classe vous devez définir projet

public class Accès

{

[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 

}

Questions connexes