0
提案ソリューションのわからないを持っています= manager.Create(user、Password.Text);私は、エラーメッセージ「エンティティオブジェクトはIEntityChangeTrackerの複数のインスタンスによって参照することはできません」が、私は</p> <p>IdentityResult結果にこのエラーメッセージをaspnet.identityを使用してユーザーを追加して取得しようとしています
それは私がエラーメッセージを研究しようとしたが、この例ではどのように適用するかわからないしました
protected void CreateUser_Click(object sender, EventArgs e)
{
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
int x = int.Parse(Address.SelectedValue.ToString());
using (var db = new ApplicationDbContext())
{
physAddress = db.PhysAddress.Find(x);
var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text, FirstName = FirstName.Text, LastName = LastName.Text, PhoneNumber = PhoneNumber.Text, HomePhone = HomePhone.Text, PhysAddressId = physAddress };
IdentityResult result = manager.Create(user, Password.Text);
if (result.Succeeded)....
に含まれているコード。任意の提案をいただければ幸いです。
Iは次のように定義されたクラスを有し、IdentityModels.csにEF
public class PhysAddress
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PhysAddressId { get; set; }
[Required]
public string Street { get; set; }
[Required]
public string City { get; set; }
[Required]
public string State { get; set; }
[Required]
public string ZipCode { get; set; }
[Required]
そしてApplicationDbContext以下を使用して、そのテーブルから行を取得するためにDBを用いたIdentityModelsで
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
public DbSet<PhysAddress> PhysAddress { get; set; }
下に有しますユーザーごとにプロパティを追加しました
public virtual PhysAddress PhysAddressId { get; set; }
コードが正しく表示されません。なぜあなたは新しいApplicationDbContextを持っていて、それからマネージャを使ってユーザーを追加するのですか?ユーザーマネージャはコンテキスト自体ではありませんか? – Yaser
なぜ私がdbを使用していたのかについての追加コードを参照してください – diannes
owinコンテキストに同じアドレスエンティティを持っていますか?そうであれば両方のコンテキストでそのアドレスの変更を追跡しようとしますユーザー – Yaser