流利的API一对一现实



我正在尝试用Fluent API实现一对一关系,但暂时没有成功。尤其是在目前不起作用的级联删除上。

需要在EventLocation这两个类之间实现关系。一个事件至少有一个位置,另一方面,一个位置可以归属于不同的事件。

编辑:事件有一个确切的位置,而不是"至少一个"。很抱歉。

当我删除一个事件,并且没有更多的事件使用该位置时,也需要删除该位置。只要位置被事件使用,位置仍然需要存储,因为事件需要一个位置。

这是我的代码:

流利的API

modelBuilder.Entity<Event>()
.HasRequired<Location>(c => c.Location)
.WithMany();
.WillCascadeOnDelete();

类别事件

[Key]
public Guid EventID { get; set; } = Guid.NewGuid();
public string Description { get; set; }
public Location Location { get; set; }

舱位

[Key]
public Guid LocationID { get; set; } = Guid.NewGuid();
public string Description { get; set; }

您需要修改您的Location class和modelBuilder,如下所示。为什么使用Fluent API在课堂上使用DataAnnotation。保持一切在流畅的API是干净得多。

[Key]
public Guid LocationID { get; set; } = Guid.NewGuid();
public string Description { get; set; }
public ICollection<Event> Events {get; set;}

modelBuilder.Entity<Event>()
.HashMany<Location>(e = > e.Events)
.WithRequired(l => l.Location)
.WillCascadeOnDelete();

相关内容

  • 没有找到相关文章

最新更新