在创建模型时分配FK会导致“ReferentialConstraint中的依赖属性映射到存储生成的列”。

时间:2011-07-13 07:55:56

标签: entity-framework-4

我有这个代码和以下EF模型:

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.

PackageID是字母数字,不是自动生成的,也就是ModuleID,因为它是FK

我该怎么办?

1 个答案:

答案 0 :(得分:2)

请检查Package.ModuleID概念属性和存储列(我假设您使用的是Devart实体模型,因此您可以在Model Explorer中检查它 - > Model.Store)将StoreGeneratedPattern设置为None。非实体键引用约束属性既不是Identity也不是Computed。