Error when calling SetValue() on UserProfile Object
I am attempting to create a user in code and am encountering some issues. I use the UserManager to create the user (UserManager.CreateUser) then I call CreateProfile on the UserProfileManager. All of this works fine. However I have a number of custom fields on the user profile that I need to set. I've created all of the fields using the Manage Profile Types in the backend but when I attempt to set the value of the property in code by calling UserProfile.SetValue() I get the following error: Sequence contains more than one matching element. This happens for every field I attempt to set. I also get the same error message if I call GetValue().
Here is the code:
--Code to create user
public bool CreateWebUser(string userName, string firstName, string lastName, string title, string organization, string organizationUrl, string address1, string address2, string city, string state, string zip, string country, string socialProfileType, string socialProfile, string email, string officePhone, string mobilePhone, string role, string password, string publications, string links, string securityQuestion, string securityAnswer) bool returnValue = false; if (this._userManagerProvider.GetUser(userName) == null) User persistedUser = this._userManagerProvider.CreateUser(userName); persistedUser.Email = email; persistedUser.Password = password; persistedUser.SetPasswordQuestion(securityQuestion); persistedUser.PasswordAnswer = securityAnswer; WebUserProfile webUserProfile = this._webUserProfileManager.CreateProfile(persistedUser, CCG_USER_PROFILE_NAME); webUserProfile.FirstName = firstName; webUserProfile.LastName = lastName; webUserProfile.Title = title; webUserProfile.Organization = organization; webUserProfile.OrganizationURL = organizationUrl; webUserProfile.Address1 = address1; webUserProfile.Address2 = address2; webUserProfile.City = city; webUserProfile.State = state; webUserProfile.ZipCode = zip; webUserProfile.Country = country; webUserProfile.SocialMediaProfileType = socialProfileType; webUserProfile.SocialMediaProfile = socialProfile; webUserProfile.OfficePhone = officePhone; webUserProfile.MobilePhone = mobilePhone; webUserProfile.Publications = publications; webUserProfile.LinksToWork = links; this._webUserProfileManager.SetProfileValues(webUserProfile); if(!string.IsNullOrEmpty(role)) this._roleManagerProvider.AddUserToRole(persistedUser, role); SaveChanges(); //SendConfirmationEmail(firstName, email, persistedUser.Id.ToString()); returnValue = true; return returnValue; public bool SetProfileValues(WebUserProfile webUserProfile) webUserProfile.UserProfile.SetValue(PROFILEFIELD_FIRSTNAME, webUserProfile.FirstName); webUserProfile.UserProfile.SetValue(PROFILEFIELD_LASTNAME, webUserProfile.LastName); webUserProfile.UserProfile.SetValue(PROFILEFIELD_MIDDLEINIT, webUserProfile.MiddleInitial); webUserProfile.UserProfile.SetValue(PROFILEFIELD_TITLE, webUserProfile.Title); webUserProfile.UserProfile.SetValue(PROFILEFIELD_ORGANIZATION, webUserProfile.Organization); webUserProfile.UserProfile.SetValue(PROFILEFIELD_ORGANIZATIONURL, webUserProfile.OrganizationURL); webUserProfile.UserProfile.SetValue(PROFILEFIELD_SOCIALPROFILETYPE, webUserProfile.SocialMediaProfileType); webUserProfile.UserProfile.SetValue(PROFILEFIELD_SOCIALPROFILE, webUserProfile.SocialMediaProfile); webUserProfile.UserProfile.SetValue(PROFILEFIELD_ADDRESS1, webUserProfile.Address1); webUserProfile.UserProfile.SetValue(PROFILEFIELD_ADDRESS2, webUserProfile.Address2); webUserProfile.UserProfile.SetValue(PROFILEFIELD_CITY, webUserProfile.City); webUserProfile.UserProfile.SetValue(PROFILEFIELD_STATE, webUserProfile.State); webUserProfile.UserProfile.SetValue(PROFILEFIELD_ZIPCODE, webUserProfile.ZipCode); webUserProfile.UserProfile.SetValue(PROFILEFIELD_COUNTRY, webUserProfile.Country); webUserProfile.UserProfile.SetValue(PROFILEFIELD_OFFICEPHONE, webUserProfile.OfficePhone); webUserProfile.UserProfile.SetValue(PROFILEFIELD_MOBILEPHONE, webUserProfile.MobilePhone); webUserProfile.UserProfile.SetValue(PROFILEFIELD_PUBLICATIONS, webUserProfile.Publications); webUserProfile.UserProfile.SetValue(PROFILEFIELD_LINKSTOWORK, webUserProfile.LinksToWork); webUserProfile.UserProfile.SetValue(PROFILEFIELD_SELECTEDPROFILE, webUserProfile.SelectedProfile); webUserProfile.UserProfile.SetValue(PROFILEFIELD_STATUS, webUserProfile.RegistrationStatus.ToString()); return true; Hello Shane,
The ticket has been answered as a support ticket. The problem was coming from a property named Title that is created again in the model and the query couldn't recognise which one to select.
Best wishes,
Svetoslav Petsov
the Telerik team