Entity framework 4 创建模型时指定FK会导致;引用约束中的从属属性映射到存储生成的列;

Entity framework 4 创建模型时指定FK会导致;引用约束中的从属属性映射到存储生成的列;,entity-framework-4,Entity Framework 4,我有此代码和以下EF模型: var modelToAdd = new Package { PackageID = model.LearningPackageID, // not auto-generated PK! Name = model.Name, Description = model.Description,

我有此代码和以下EF模型:

 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


我该怎么办?

请检查Package.ModuleID概念属性和store列(我假设您使用的是Devart实体模型,因此可以在model Explorer->model.store中进行检查)是否已将StoreGeneratedPattern设置为None。非实体键引用约束属性既不能是标识也不能计算。

因此,
包中的所有PK和FK都将
StoreGeneratedPattern
设置为
None
?但是,Module.ModuleID是主键,它使用Idenity的store generated模式。如果我将其设置为“无”,那么生成自动递增数字的序列仍然有效吗?@Extrakun,我刚才说的是Package表中的ModuleID列。模块表的Identity ID列应该没有任何问题。