Câu hỏi EntityType 'MyProfile' không có khóa được xác định. Xác định khóa cho EntityType này


Tôi không chắc tại sao tôi nhận được thông báo lỗi này. Tôi có một khóa chính được xác định trong cơ sở dữ liệu sql của tôi cho nó. Đây là mã của tôi:

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

Và đây là MyProfile Class của tôi:

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


    }
}

Tôi không chắc chắn tại sao tôi nhận được lỗi này: EntityType 'MyProfile' has no key defined. Define the key for this EntityType. khi nó cố gắng thêm vào cơ sở dữ liệu db.Profiles.Add(profile);.


18
2018-03-15 02:40


gốc




Các câu trả lời:


Trường nào là chìa khóa của bạn? Cho dù đó là gì - ProfileId hoặc UserId - hoặc thay đổi tên thành MyProfileId hoặc Id hoặc người khác đặt thuộc tính [Key] trên đó.


36
2018-03-15 02:45





Tôi chạy vào vấn đề này cũng và muốn thêm rằng trong Entity Framework phiên bản 6 lỗi này xảy ra vì loại DbgGeography đã được di chuyển từ system.data.entity lắp ráp và vào entityframework.dll

để giải quyết vấn đề này trong EF 6+ xóa tham chiếu đến dll thực thể và thay đổi câu lệnh bằng sử dụng System.Data.Entity.Spatial

xem cái này http://entityframework.codeplex.com/workitem/1535


1
2018-01-20 01:45