0

挿入する必要がある2つのテーブルがあります

表 1 : プロジェクト

  • プロジェクト ID
  • 名前
  • 説明

表 2 : アクセス

  • ID
  • ユーザーID
  • プロジェクト ID

今、Entity Framework で ASP.NET MVC 4 を使用していますが、このテーブルの両方に挿入するにはどうすればよいですか?

つまり、EF を使用して表 1 に挿入できることはわかっていますが、2 番目の挿入を行うには projectId (最初の挿入で生成される) が必要です。

どうすればいいのかわかりません。誰かがこれについて私を案内してください

4

2 に答える 2

3

When you save an object, the EF will populate the auto generated Key fields of the inserted objects:

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.
}
于 2012-11-10T09:57:21.857 に答える
2

public 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

}

// モデルフォルダ内

パブリック クラス ProjectContext: DbContext

{

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

}

// アクセス クラスでも Project を定義する必要があります

公開クラス アクセス

{

[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

}

于 2012-11-27T06:06:52.417 に答える