Ошибка Entity Framework: объект с нулевым значением EntityKey не может быть присоединен к контексту объекта

В моем приложении у меня есть следующий код ...

    public Boolean SaveUserInformation(UserInfoDTO UserInformation)
    {
        return dataManager.SaveUserInfo(new UserInfo()
        {
            UserInfoID = UserInformation.UserInfoID.HasValue ? UserInformation.UserInfoID.Value : 0,
            UserID = UserInformation.UserID,
            ProxyUsername = UserInformation.ProxyUsername,
            Email = UserInformation.Email,
            Status = UserInformation.Status
        });
    }

Этот код вызывает метод для объекта dataManager, который использует Entity Framework ...

    public Boolean SaveUserInfo(UserInfo userInfo)
    {
        try
        {
            //Validate data prior to database update
            if (userInfo.UserID == null) { throw new Exception("UserInfoDomainModel object passed to PriorityOne.Data.DataManager.SaveUserInfo with UserID property set to NULL."); }
            if (userInfo.ProxyUsername == null) { throw new Exception("UserInfoDomainModel object passed to PriorityOne.Data.DataManager.SaveUserInfo with ProxyUsername property set to NULL."); }
            if (userInfo.Email == null) { throw new Exception("UserInfoDomainModel object passed to PriorityOne.Data.DataManager.SaveUserInfo with Email property set to NULL."); }

            if (userInfo.UserInfoID == 0)
            {
                //Perform Insert
                using (PriorityOneEntities entities = new PriorityOneEntities())
                {
                    entities.UserInfoes.AddObject(userInfo);
                    entities.SaveChanges();
                }
            }
            else
            {
                //Perform Update
                using (PriorityOneEntities entities = new PriorityOneEntities())
                {
                    entities.Attach(userInfo);
                    entities.SaveChanges();
                }
            }

            return true;
        }
        catch (Exception ex)
        {
            //TODO: Log Error
            return false;
        }

    }

Вставка в этот код работает просто отлично. Но когда я пытаюсь выполнить обновление, я получаю сообщение об ошибке: «Объект с нулевым значением EntityKey не может быть присоединен к контексту объекта».

Это происходит в этой строке кода: entity.Attach (userInfo);

То, что я пытаюсь сделать, - это избежать кругового обхода базы данных, просто чтобы выбрать запись, в которую я позже внесу изменения и обновлю ее, таким образом сделав два обхода базы данных.

Любые идеи, что идет не так, или как я мог бы лучше добиться этого?

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос