【发布时间】:2014-11-12 10:24:34
【问题描述】:
我遇到了一个奇怪的问题。当我部署我的代码时,一切正常。我可以将订单添加到我的系统中。但是,在下了一些命令后,我开始收到著名的错误:
The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted.
现在,我已经阅读了很多关于该错误的信息,但这对我的情况没有帮助。我有一个非常简单的数据库,没有任何外键:
我的代码如下所示:
public NewOrder Create(NewOrder order)
{
var o = new WebshopOrder();
o.AdvertId = order.AdvertId;
o.DateCreated = DateTime.Now;
o.IsActivated = order.OrderState > OrderState.Created;
o.ProductId = order.Product.Id;
o.UserId = order.UserId.ToString();
Db.WebshopOrder.Add(o);
Db.SaveChanges();
return new NewOrder() { WebshopOrderId = o.Id};
}
当我说 Db.SaveChanges() 时,这反过来又失败了。
知道这里到底有什么问题吗?
【问题讨论】:
-
您确定您正在查看正确的表格吗?我问是因为 WebshopOrder 实体似乎与您的表(AdvertId,IsActivated)具有不同的属性。
标签: sql asp.net asp.net-mvc entity-framework entity-framework-5