每当我尝试将某些内容保存到数据库中时,我都会收到错误:
A dependent property in a ReferentialConstraint is mapped to a store-generated column. Column: 'PackageId'.
以下是执行此操作的代码,即行DB.SaveChanges();
。
public ActionResult CreatePackage(Package package, string MaterialId, string SubCategoryId, string Companies)
{
ModelState.Clear();
//add stuff to package
package.CreatedDate = DateTime.Now;
DB.Packages.Add(package);
DB.SaveChanges();
return Redirect(Url.Action("Index", "Material") + "#Packages");
}
下面是抛出异常的表格图:
在对stackoverflow进行一些繁重的研究后,我相信我的外键可能有问题:
但是,我无法找到我的代码或我的数据库可能出错的地方。我试图在表包和COmpany之间创建多对多关系。公司可以有几个包装,一些包装可以被几家公司使用。
我觉得奇怪的是,这只会在我尝试创建新对象时发生。例如,如果我有一个包含PackageId = 0
的包和一个包含CompanyId = 0
的公司,并且我运行了SQL服务器语句:
INSERT INTO GATE_Package_Company
VALUES (0, 0);
一切正常,因为前一个对象已经存在。但是如果我尝试创建一个新的Pacakge对象(一个尚不存在的对象)并尝试保存它,我就会收到错误。现在,根本无法添加新包:S
我错过了什么?
答案 0 :(得分:0)
问题出在Visual Studio上。通过从'.edmx'文件中删除该表并再次从数据库重新导入该表,问题得以解决。
我正在使用Visual Studio Ultimate 2013,我不知道这个问题是否特定于此版本,或者它是否也会影响其他版本。
我所知道的是,我浪费了2天。老实说,我希望这个答案可以在将来帮助别人。