ASP.Net Identity 2 を使用しています。次のようにユーザーを作成しました。
public class User : IdentityUser<int, CustomUserLogin, CustomUserRole, CustomUserClaim>
{
public virtual Agency Agency { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
ユーザーはエージェンシーのメンバーです:
public class Agency
{
public int Id { get; set; }
public string Name { get; set; }
public string TaxId { get; set; }
public List<User> Brokers { get; set; }
}
ユーザーはエージェンシーと 1 対多の関係にあります。ユーザーを作成するときは、データベースから Agency を取得し、 を に設定しAgency
ますUser
。これは物事がうまくいかないところです。
var manager = Identity.GetUserManager();
manager.Create(new User()
{
UserName = "chuckconway",
Email = "chuck@winnemen.com",
FirstName = "Chuck",
LastName = "Conway",
Agency = agency
}, "123");
エージェンシーを参照してユーザー テーブルに主キーを挿入する代わりに、ASP.NET ID はエージェンシー テーブルに新しいエージェンシー レコードを挿入し、新しく作成されたユーザーでその ID を使用します。結局、2つの代理店に行き着きました...