2014-11-21 59 views
0

每次我試圖挽救一些到數據庫時,我得到的錯誤:在ReferentialConstraint從屬屬性映射到一個存儲生成列 - 節能目標

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"); 
     } 

下面是桌子的拋出異常圖:

enter image description here

做一些重reasearch我的計算器我認爲有可能是壞了我的外鍵後:

但是我看不到找一下可以possibl是錯我的代碼,也沒有我的數據庫。我試圖在表格Packages和COmpany之間創建一個多對多的關係。一個公司可以有多個包裝,一個包裝可以由幾家公司使用。

我覺得奇怪的是,這隻發生在我嘗試創建一個新的對象時。舉例來說,如果我有一個PackageId = 0包裝和公司與CompanyId = 0,如果我運行SQL server語句:

INSERT INTO GATE_Package_Company 
VALUES (0, 0); 

,一切工作正常,因爲以前的對象已經存在。但是,如果我嘗試創建一個新的Pacakge對象(一個不存在的對象),並嘗試保存它,則會出現該錯誤。現在它是根本無法添加新的包:S

我錯過了什麼?

+0

如果您在Insert上運行軌跡,生成的SQL命令的外觀如何?這可能是一個時間問題,因爲在您嘗試注入其他記錄時,該包不存在(或已提交)。 – ChrisBint 2014-11-21 09:59:20

+0

如何在插件上運行軌跡? – 2014-11-21 10:03:53

+0

您可以使用SQL分析器 – ChrisBint 2014-11-21 10:09:00

回答

0

問題出在Visual Studio上。通過從'.edmx'文件中刪除該表並再次從數據庫中重新導入該表,問題就解決了。

我正在使用Visual Studio Ultimate 2013,並且我不知道此問題是特定於此版本還是它也影響其他版本。

我只知道我浪費了2天的時間。我誠懇地希望這個答案可以在未來幫助其他人。

相關問題