在我的应用程序中,我有这个类结构。
public class Class1
{
public long Class1ID { get; set; }
public ICollection<Class2> class2 { get; set; }
}
public class Class2
{
public long Class2ID { get; set; }
public ICollection<Link> Link { get; set; }
}
public class Link
{
public long ID { get; set; }
public string URL { get; set; }
}
前端:
public async Task<IActionResult> OnPostAsync(long? id)
{
var r = 1 + 1;
if (id == null)
{
return NotFound();
}
var Class1 = await _context.Class1.FindAsync(id);
await _context.SaveChangesAsync();
if (Class1 != null)
{
_context.Class1.Remove(Class1);
await _context.SaveChangesAsync();
}
return RedirectToPage("./Index");
}
使用本地数据库正确地对数据进行数据绑定。我现在可以编辑和查看Class1
。当我尝试删除Class1
的实例时,它说我不能,因为它正被使用。
SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_Class2_Class1_Class1ID". The conflict occurred in database "DBName", table "dbo.Class2", column 'Class1ID'.
The statement has been terminated.
为了进行级联删除,我是否必须通过数据库并删除OnPostAsync()
方法中的所有相关字段?还是有一个更简单的方法?