.NET APIには、フロントエンドの角度フレームワークと組み合わされた基本エンティティクラスがあります。私は2つのクラス、プロジェクトと会社を持っています。プロジェクトを作成するときは、会社を割り当てる必要があります。 POST要求をプロジェクトコントローラに送信するとき、会社は保存されません。基本的なEntity Framework Web API:FOREIGN KEY制約と競合するINSERTステートメント
クラスは次のとおりです。
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Company Company { get; set; }
public Contact Contact { get; set; }
public User2 User { get; set; }
}
コントローラのメソッドは次のとおりです。
// POST: api/Projects
[ResponseType(typeof(Project))]
public IHttpActionResult PostProject(Project project)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Projects.Add(project);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = project.Id }, project);
}
JSONのPOSTデータがここにある
{
"name":"project name",
"description":"text description",
"company":{"id":"1"},
"contact":{"id":"1"},
"user":{"id":"1"}
}
なぜ会社、連絡先、ユーザーのIDのは、外部キーテーブルを更新しないでください。外部キーを保存するためにコントローラメソッドに渡すにはどのような値が必要ですか?
説明のためにありがとう。それは私が問題を理解するのに少し役立ちます。 Entity Frameworkはプロセスのその部分を自動化する必要がありますが、私はそれがどのようにセットアップされているのか明確に分かりません。どのようにエンティティがその外部キーを見つけるのを自動化するのか? –