1

我有两个具有 1:1 关系的表。我使用实体框架的模型优先方法创建了它们。现在我想删除一条记录,但我不能从一个表中删除,而不能从另一个表中删除,当我尝试时出现以下异常:

'正在从 AssociationSet 'FK_lm_ab_profile_lm_profile_master' 中添加或删除关系。使用基数约束,还必须添加或删除相应的“lm_ab_profile”。

我有一个与 ABProfile 相关的配置文件表,我想从配置文件和 AbProfile 中删除。他们都使用 profile_id 作为 PK,ABProfile 将 profile_id 作为 FK

我的代码:

        //Get the old profile to see if one already exists
            var oldProfile = context.lm_profile_master.FirstOrDefault(p => p.profile_id.Equals(profileID));

            lm_ab_profile ab = new lm_ab_profile();

            //Check to see if user doesn't already exist
            if (oldProfile != null)
            {

                    //try and specify the relationship between profile and ABProfile using profileID
                    oldProfile.lm_ab_profileReference.EntityKey = new System.Data.EntityKey("luminusEntities.lm_ab_profile", "profile_id", profileID);    


                    //remove found object from the database and persist changes  

                    context.DeleteObject(oldProfile);
                    context.SaveChanges();
              }

我如何指定这两个表是相关的,所以当我从一个表中删除一条记录时,另一条记录也被删除......我为模型上的级联函数设置了我的表。

4

1 回答 1

0

您描述的情况是表之间的约束。你试图影响一致性。

在实体框架中查看这个删除一个对象及其所有相关实体并定义 ON DELETE CASCADE

于 2013-07-18T08:01:32.603 回答