У меня есть эта сущность Page:ABP - Как удалить зависели элементы из сущность - рамки сущности
public class Page : FullAuditedEntity<int, User>, IMultiLanguageEntity<PageTranslation>
{
public string Name { get; set; }
public string Content{ get; set; }
public Page()
{
Translations = new List<PageTranslation>();
}
public virtual IList<PageTranslation> Translations { get; set; }
}
И сущность PageTranslation:
[Table("PageTranslations")]
public class PageTranslation : Entity<int>, IEntityTranslation<Page>
{
public Page Core { get; set; }
public int CoreId { get; set; }
public string Language { get; set; }
public string Name { get; set; }
public string Content{ get; set; }
}
Я хочу обновить страницу объект с обновленными значения и трансакции, поэтому я вызываю эту услугу:
public void UpdatePage(UpdatePageInput input)
{
var item = _pageRepository.Get(input.Id);
item.Content = input.Content;
item.Description = input.Description;
item.Title = input.Title;
item.Name = input.Name;
item.Translations.Clear(); // there is a problem
item.Translations.addRange(input.Translations);
}
Когда я называю item.Translations.Clear()
метод, который я получил это исключение:
Операция не удалась: Отношения не могут быть изменены, потому что один или несколько внешних ключей свойств не является обнуляемым. При изменении в отношении связанное свойство внешнего ключа имеет значение , установленное на нулевое значение. Если внешний ключ не поддерживает нулевые значения, должно быть определено новое отношение, свойство внешнего ключа должно быть , которому присвоено другое ненулевое значение, или не связанный объект должен быть удален .
Как это решить в ABP - http://www.aspnetboilerplate.com/?
Спасибо за помощь!
Когда вы создаете свою текущую настройку api и запускаете действие add-migrate, дайте мне этот результат: ** RenameColumn (таблица: «dbo.Pages», имя: «CoreId», newName: «Translations_Id»); CreateIndex ("dbo.Pages", "Translations_Id"); } ** Это абсурд, я думаю –