如何解决一对多关系-级联删除
| 我正在使用EF 4.1,试图将POCO映射到现有数据库。在我尝试删除另一个项目所依赖的项目之前,此方法工作正常。我要启用级联删除,以便在删除第一项时,所有依赖项也将被删除(我相信这称为级联删除)。 我试图在OnModelCreating中启用它:modelBuilder.Entity<Component>()
.HasMany(c => c.Specifications)
.Withrequired(s => s.Component)
.Map(m => m.MapKey(\"ComponentId\"))
.WillCascadeOnDelete(true);
但是,我仍然遇到“ 1”例外。
该数据库非常简单:
零件:
ComponentId(PK)
描述
规格:
规格ID(PK)
描述
ComponentID(FK)
我创建了以下两个类以匹配此设置:
public class Specification
{
[Key]
[required]
public int Id { get; set; }
[MaxLength(50)]
[required]
public string Description { get; set; }
public virtual Component Component { get; set; }
}
和
public class Component
{
[Key]
[required]
public int Id { get; set; }
[MaxLength(50)]
[required]
public string Description { get; set; }
public virtual ICollection<Specification> Specifications { get; set; }
}
解决方法
模型中的级联删除需要在数据库中级联删除。如果让EF为您重新创建数据库,它将自动进行设置。如果您不能让EF这样做,则您必须:
手动将级联删除添加到FK,或者
从模型中删除级联。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。