如何删除集合

本文关键字:集合 删除 何删除 | 更新日期: 2023-09-27 18:29:39

 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,则必须定义 新关系,外键属性应设置为另一个 值,或删除未绑定的对象。

如何删除整个集合并保存一个新集合?

如何删除集合

您还必须从数据库中删除这些项,而不仅仅是从 nav 属性中删除这些项。

大约:

// main.TermsStocks.Clear(); 
foreach (var item in main.TermsStocks)
{
    db.TermsStocks.Remove(item);
}

我认为TermsStock对象有一个不可为空的外键折扣。那么就不可能有一个没有折扣的 TermsStock 对象。你试图做的事情以这种方式是不可能的。