Вставить данные в таблицу значений объекта - PullRequest
0 голосов
/ 24 апреля 2019

Вставка данных по POSTMAN, но произошла ошибка.

Мой код указан ниже:

public async Task<BusinessProfile> Save(string ID,bool Status,string Logo,string TaxNumber,string StateRegisterNumber,string StreetName,string Number
            ,string Complement,string PostalCode,string Neighborhood,string City,string State,string AreaCode,string Department
            ,string PhoneNo,string Type,string Website,string EDepartment,string EmailAddress)
        {

            try
            {
                int EnumPhoneNumber = 0;
                string[] values = Enum.GetNames(typeof(PhoneNumberEnum.PhoneNumber));

                if (values[0] == Type)
                {
                    EnumPhoneNumber = (int)PhoneNumber.FixedPhone;
                }
                else if (values[1] == Type)
                {
                    EnumPhoneNumber = (int)PhoneNumber.MobilePhone;
                }

                var businessProfile = new BusinessProfile() { ID = ID, Status = Status, Logo = Logo, TaxNumber = TaxNumber, StateRegisterNumber = StateRegisterNumber, Website = Website };
                businessProfile.AssignAddress(new Address(StreetName, Number, Complement, PostalCode, Neighborhood, City, State));
                businessProfile.AssignPhones(new Phones(Convert.ToString(EnumPhoneNumber), AreaCode, PhoneNo, Department));
                businessProfile.AssignEmail(new Emails(EmailAddress, EDepartment));

                //_db.Add(businessProfile);


                Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<BusinessProfile> x = await _db.AddAsync(businessProfile);

                // _db.SaveChanges();


                //await _db.BusinessProfiles.AddAsync(businessProfile);
                await _db.SaveChangesAsync();
                return businessProfile;
            }
            catch(Exception ex)
            {
                throw ex;
            }


        }

Выход (Ошибка:):

Произошло необработанное исключение при обработке запроса.

InvalidOperationException: сущность типа BusinessProfile делит таблицу BusinessProfiles с сущностями типа Address, но нет сущности этого типа с таким же значением ключа, который был отмечен как Added , Попробуйте использовать DbContextOptionsBuilder.EnableSensitiveDataLogging, чтобы увидеть ключевые значения.

1 Ответ

0 голосов
/ 10 мая 2019

Публичное асинхронное сохранение задач (BusinessProfile BP) { пытаться { int EnumPhoneNumber = 0; string [] values ​​= Enum.GetNames (typeof (PhoneNumberEnum.PhoneNumber));

            if (values[0] == bp.Phones.Type)
            {
                EnumPhoneNumber = (int)PhoneNumber.FixedPhone;
            }
            else if (values[1] == bp.Phones.Type)
            {
                EnumPhoneNumber = (int)PhoneNumber.MobilePhone;
            }

            var businessProfile = new BusinessProfile() { ID = bp.ID, IsActive = bp.IsActive, Logo = bp.Logo, TaxNumber = bp.TaxNumber, StateRegisterNumber = bp.StateRegisterNumber, Website = bp.Website };
            businessProfile.Address = new Address(bp.Address.StreetName, bp.Address.Number, bp.Address.Complement, bp.Address.PostalCode, bp.Address.Neighborhood, bp.Address.City, bp.Address.State);
            businessProfile.Phones = new Phones(Convert.ToString(EnumPhoneNumber), bp.Phones.AreaCode, bp.Phones.PhoneNumber, bp.Phones.Department);
            businessProfile.Emails = new Emails(bp.Emails.EmailAddress, bp.Emails.Department);

            Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<BusinessProfile> x = await _db.AddAsync(businessProfile);
            await _db.SaveChangesAsync();
            return businessProfile;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
...