私は単なる標準的な先駆者であり、ASP.NET MVC 3 を介してプログラミングすることを独学しているため、私の知識は基本的なものであり、概念的には、自分がやろうとしていることに対するより良いアプローチに対してオープンです。
だから、ここに私がやろうとしていることがあります:
会社とユーザーのデータを収集する ViewModel を作成しました。私の意図は、このデータを Company と User の 2 つの Domain Models に保存することです。ここで、CompanyのIdはUserの外部キーです。さらに、メンバーシップを作成するために必要なユーザー データを渡したいと思います。
私の問題は、基本的な ASP.NET MVC チュートリアルにある基本的な厳密に型指定されたモデルの関連付けを通過したため、HttpPost を介してすべてを同期する方法がわからないことです。
これが私のViewModelです:
public class SPCompanyViewModel
{
[Required]
[Display(Name = "Company Name")]
public string CompanyName { get; set; }
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
会社とユーザーのドメインモデルは次のとおりです。
namespace BidFetcher.Models.ServiceProvider
{
public class SPCompany
{
public int Id { get; set; }
public string CompanyName { get; set; }
}
public class SPUser
{
public int Id { get; set; }
public int SPCompanyId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
そして、これが私の問題領域であるControllerです。
[HttpPost]
public ActionResult Create(SPCompanyViewModel viewModel)
{
var spCompany = new SPCompany
{
CompanyName = viewModel.CompanyName,
};
db.SPCompany.Add(spCompany);
return RedirectToAction("Index");
}
ご覧のとおり、問題なく会社レコードを作成できます。しかし、 User テーブルに新しい行を作成できるように、作成したばかりのレコードから会社IDを簡単に取得する方法がわからないため、行き詰まっています。
この種の問題に取り組むためのコードの提案、または概念的な提案は大歓迎です!