Cra*_*g M 14 entity-framework one-to-many code-first cascading-deletes
在不暴露外键的情况下执行一对多关系的删除时,EF会删除父记录并尝试使子记录上的外键为空.这当然会导致错误,因为外键不可为空.将外键添加到子类会覆盖此行为,但我宁愿不公开它.
例如,给定以下两个类,我不希望将JobId作为Project类的属性.
public class Job : ModelBase
{
[Required]
[StringLength(100)]
public string Company { get; set; }
[Required]
[StringLength(100)]
public string JobTitle { get; set; }
public ICollection<Project> Projects { get; set; }
}
public class Project : ModelBase
{
[Required]
[StringLength(100)]
public string Name { get; set; }
[Required]
public string Summary { get; set; }
public int JobId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在EF Code First中启用级联删除而不在关系的多方面暴露外键?
ano*_*non 14
对!删除JobId并添加以下内容:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Job>().HasMany(j => j.Projects).WithRequired();
}
Run Code Online (Sandbox Code Playgroud)
在数据库中,这将在PK/FK关系中添加级联删除.
(我假设你的ModelBase有一个整数Id =)
| 归档时间: |
|
| 查看次数: |
8068 次 |
| 最近记录: |