2011-07-13 40 views
0

我有這樣的代碼和下面的EF模型:創建模型時分配FK導致「ReferentialConstraint中的依賴屬性映射到商店生成的列」。

enter image description here

var modelToAdd = new Package 
       { 
        PackageID = model.LearningPackageID, // not auto-generated PK! 
        Name = model.Name, 
        Description = model.Description, 
        DateCreated = DateTime.Now, 
        ModuleID = model.ModuleID 
       }; 
       activityRepo.AddPackage(modelToAdd); 

這不工作太

var modelToAdd = new Pacakge 
      { 
       PackageID = model.LearningPackageID, // not auto-generated PK! 
       Name = model.Name, 
       Description = model.Description, 
       DateCreated = DateTime.Now 


      }; 
// assume moduleID is defined to a valid module ID (yes, tested) 
var module = entities.Modules.Where(x => x.ID == moduleID); 
module.Pacakges.Add(modelToAdd); 
entities.SaveChanges(); 

基本上,有一個1:高炮模塊和包品M的關係。然而,當我嘗試設置的moduleId(從下拉得到),這兩種情況下我會得到:

A dependent property in a ReferentialConstraint is mapped to a store-generated column. 

包標識是字母數字,而不是自動生成的,要麼是的moduleId,如這是一個FK

我該怎麼辦?

+0

因此,'Package'中的所有PK和FK都將'StoreGeneratedPattern'設置爲'None'? –

回答

2

請檢查Package.ModuleID概念屬性和商店列(我想您使用的是Devart實體模型,因此您可以在Model Explorer-> Model.Store中檢查它)是否將StoreGeneratedPattern設置爲None。非實體關鍵字參照約束屬性既不是標識也不是計算。

+0

但是,Module.ModuleID是一個主鍵,它使用Idenity的存儲生成模式。如果我將它設置爲none,那麼生成自動遞增數字的序列是否仍然有效? – Extrakun

+0

@Extrakun,我正在談論Package表中的ModuleID列。 Module表的Identity ID列不應該有任何問題。 – Devart

相關問題