type the primary mvc identityuserlogin for entitytype define c# asp.net asp.net-mvc-3

c# - the - EntityType ''MyProfile'' no tiene una clave definida. Definir la clave para este EntityType



define the key for this entitytype mvc 5 (2)

¿Cuál campo es tu clave? Cualquiera que sea - ProfileId o UserId - cambie el nombre a MyProfileId o Id o ponga un atributo [Key] en él.

No estoy seguro de por qué estoy recibiendo este mensaje de error. Tengo una clave principal definida en mi base de datos sql para ello. Aquí está mi código:

[HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email); if (createStatus == MembershipCreateStatus.Success) { FormsService.SignIn(model.UserName, false /* createPersistentCookie */); MembershipUser myObject = Membership.GetUser(); Guid UserID = (Guid)myObject.ProviderUserKey; MyProfile profile = new MyProfile(); profile.Address = model.Address; profile.City = model.City; profile.Zip = model.Zip; profile.State = model.State; profile.UserId = UserID; db.Profiles.Add(profile); return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); } } // If we got this far, something failed, redisplay form ViewBag.PasswordLength = MembershipService.MinPasswordLength; return View(model); }

Y esta es mi clase MyProfile:

namespace MatchGaming.Models { [Bind(Exclude = "ProfileId")] public class MyProfile { [ScaffoldColumn(false)] public int ProfileId { get; set; } public Guid UserId { get; set; } [DisplayName("Address")] public string Address { get; set; } [DisplayName("City")] public string City { get; set; } [DisplayName("Zip")] public string Zip { get; set; } [DisplayName("State")] public string State { get; set; } } }

No estoy seguro de por qué recibo este error: EntityType ''MyProfile'' has no key defined. Define the key for this EntityType. EntityType ''MyProfile'' has no key defined. Define the key for this EntityType. cuando intenta agregar a la base de datos db.Profiles.Add(profile); .


Me encontré con este problema también y quería agregar que en Entity Framework versión 6 este error se produce porque el tipo DbgGeography se ha movido del ensamblado system.data.entity y en el entityframework.dll

para resolver esto en EF 6+ elimine la referencia a la entidad dll y cambie la instrucción using a System.Data.Entity.Spatial

mira esto http://entityframework.codeplex.com/workitem/1535