[英]Fluent API One-Or-Many to One realtionship
我正在尝试通过Fluent API实现一对多关系,但暂时没有成功。 尤其是在删除级联上,目前暂时不起作用。
需要在两个类Event和Location之间实现该关系。 一个事件至少具有一个位置,在另一侧,一个位置可以归因于不同的事件。
编辑:一个事件具有确切的一个位置,而不是“至少一个”。 非常遗憾。
当我删除一个事件并且没有其他使用该位置的事件时,则该位置也需要删除。 只要某个事件使用该位置,该位置仍需要存储,因为一个事件必须具有该位置。
这是我的代码:
流利的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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.