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();
}
如何指定,当我从一个删除记录的两个表是相关的,对方记录得到删除也...我设置我的表模型上的层叠功能。
是的,我已经设置了,但是当我尝试删除表要求我先指定与FK表,在这种情况下ABprofile参考来分析大师null ...这就是我想要在上面存档的东西。 – Ndupza
我不确定我是否正确理解它。 但是,如果您正确设置ON DELETE ACTION,则ABprofile对MasterProfile具有空引用是不可能的。 也许你设置ON DELETE ACTION = SET NULL? 我不是一个实体框架用户,但我认为它是数据库层的问题。 –
看起来像我的对象状态管理器没有正确组织,一直在调试,但在这个玉米中找不到东西 – Ndupza