Как удалить коллекцию? - PullRequest
       3

Как удалить коллекцию?

0 голосов
/ 02 апреля 2012
 var main = (from d in db.Discounts where d.Id == discount.Id && d.UserId == userId select d).FirstOrDefault();
main.Address = "new address";
main.TermsStocks.Clear(); // I need clear collection and add new object.

            foreach (var termsStock in terms)
            {
                main.TermsStocks.Add(new TermsStock() { Id = Guid.NewGuid(), MainId = main.Id, Title = termsStock.Title });
            }
db.SaveChanges(); 

и у меня ошибка:

Операция не выполнена.Невозможно изменить ссылку, поскольку одно или несколько свойств значений внешнего ключа не допускают NULL.Если вы измените свойство соединения соответствующего внешнего ключа, установите значение NULL.Если значение внешнего ключа не поддерживает NULL, должно быть определено новое отношение, для свойства внешнего ключа должно быть установлено другое значение, отличное от NULL, или для удаления несвязанного объекта.

как удалитьвсю коллекцию и сохранить новую?

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Вам придется также удалить эти элементы из базы данных, а не только из свойства nav.

Примерно:

// main.TermsStocks.Clear(); 
foreach (var item in main.TermsStocks)
{
    db.TermsStocks.Remove(item);
}
0 голосов
/ 02 апреля 2012

Я думаю, что объект TermsStock имеет необнуляемый внешний ключ Discount.Тогда невозможно иметь объект TermsStock без скидки.То, что вы пытаетесь сделать, таким образом невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...