基本上我有模型,例如
@ViewChild('myDirective') myDirective : MyDirective;
...
clickTest() {
this.myDirective.selectionMade(); // In this section, call (onSelect).
}
我一直在尝试做这样的事情:
public class Dealer
{
[Key]
public Guid Id { get; set; }
public List<Car> Cars { get; set; } = new List<Car>();
}
public class Car
{
[Key]
public Guid Id { get; set; }
public string Model { get; set; }
}
不幸的是,它真的没有用
DELETE语句与REFERENCE约束“ FK_Cars_Dealer_DealerId”冲突。 在数据库“ Test”的表“ dbo.Cars”的列“ DealerId”中发生了冲突。
关于在没有流畅配置的情况下如何执行带关系删除的任何想法?
[CascadeDelete]属性。
似乎不在EF Core中
答案 0 :(得分:2)
答案是-不,这是不可能的,因为这是这种类型的模型(Cascade Delete for optional relationhips)的常规行为,当常规行为不适合您时,您应该使用数据注释/流利的方式覆盖它们API。由于只能使用fluent API来指定级联删除行为,因此必须使用fluent配置。
如果您的关系是required,例如Car
具有明确的* non nullable&FK public Guid DealerId { get; set; }
,但问题是您可以关闭级联删除,答案是一样的。
简短地说,使用流畅的配置,这只是存在数据注释/流畅的API的情况之一。最小值是
modelBuilder.Entity<Dealer>().HasMany(e => e.Cars).WithOne()
.OnDelete(DeleteBehavior.Cascade);
别忘了生成新的迁移并更新数据库。