EntityType’MyProfile’没有定义键。 定义此EntityType的键

我不知道为什么我收到此错误消息。 我在我的sql数据库中为它定义了一个主键。 这是我的代码:

[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); } 

这是我的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; } } } 

我不知道为什么我收到此错误: EntityType 'MyProfile' has no key defined. Define the key for this EntityType. EntityType 'MyProfile' has no key defined. Define the key for this EntityType. 当它试图添加到数据库db.Profiles.Add(profile);

哪个字段是你的关键? 无论是哪个–TrofileId或UserId – 将名称更改为MyProfileId或Id,或者在其上放置[Key]属性。

我也遇到了这个问题并希望在Entity Framework版本6中添加此错误,因为DbgGeography类型已从程序集system.data.entity移动到entityframework.dll中

要在EF 6+中解决此问题,请删除对实体dll的引用,并将using语句更改为使用System.Data.Entity.Spatial

请参阅此http://entityframework.codeplex.com/workitem/1535