I have an entity with a foreign key relation to the asp.net provider user table.
This part of the model is as follows:

I cannot assign a foreign key relationship when I insert a record from the Users table, a record containing the foreign key, into the aspnet_Users table. I keep getting the error:
An item with the same key has already been added.
The code I use looks like this:
UserAdmin userToAdd = new UserAdmin(); ... userToAdd.aspnet_Users = membershipUser; //line above OR line below userToAdd.aspnet_UsersReference.EntityKey = new System.Data.EntityKey("ProjectEntities.aspnet_Users", "UserId", membershipUser.UserId); db.AddToUsers(userToAdd); db.SaveChanges();
Is the problem that I ask EF to add a new aspnet_Users table aspnet_Users (an entry for the related primary key table) when this entry already exists?
How to assign a foreign key value to an object in which a primary key record already exists?
Updated test code block:
MembershipUser membershipUser = Membership.CreateUser("blah@blah.com", "pass", "blah@blah.com"); Entities db = new Entities(); UserAdmin newUser = new UserAdmin(); newUser.Name = "blah"; newUser.DateAdded = DateTime.Now; Guid key = new Guid(membershipUser.ProviderUserKey.ToString()); aspnet_Users membershipUserRecord = db.aspnet_Users.Where(u => u.UserId == key).FirstOrDefault(); newUser.aspnet_Users = membershipUserRecord; //newUser.aspnet_UsersReference.EntityKey = new System.Data.EntityKey("Entities.aspnet_Users", "UserId", membershipUserRecord.UserId); db.ObjectStateManager.ChangeObjectState(membershipUserRecord, EntityState.Unchanged); db.AddToUsers(newUser); db.SaveChanges();
This code generates an error:
An item with the same key has already been added.
Brooklyndev
source share