В результате публикации формы я пытаюсь сохранить новую запись бренда. На мой взгляд, Gender это выпадающий список, возвращающий Integer, который заполняется из ViewData («пол»)
Я настроил свою ссылку следующим образом:
gID = CInt(Request.Form("Gender"))
Brand.GenderReference.EntityKey = New EntityKey("DB_ENTITIES.Gender", "Id", gID)
TryUpdateModel(Brand)
DB.SaveChanges()
Что приводит к следующей ошибке.
Entities in 'DB_ENTITIES.Brand' participate in the 'FK_Brand_Gender' relationship. 0 related 'Gender' were found. 1 'Gender' is expected.
Может ли кто-нибудь объяснить параметры на простом английском языке для меня. Я также попробовал DB.Gender в качестве первого параметра, но без радости.
Вместо создания EntityKey создайте заглушку объект Gender (извините, я не VB парень, так в C #):
Gender g = new Gender{ID = Int32.Parse(Request.Form("Gender"))};
Затем вы присоединяете Gender к соответствующему EntitySet
(имя свойства в DB
, из которого вы получаете сущности Gender, приведено ниже):
DB.AttachTo("Genders",g);
Это переводит базу данных в состояние, где пол находится в ObjectContext
в неизменном состоянии без запроса к базе данных. Теперь вы можете строить отношения как обычно
brand.Gender = g;
DB.AddToBrand(brand);
DB.SaveChanges();
Это все, что нужно сделать. Нет необходимости EntityKeys
с EntityKeys
Надеюсь это поможет
Вам нужен экземпляр как бренда, так и пола, а затем установите для Brand.Gender экземпляр пола. Тогда вы можете сохранить без проблем.