繁体   English   中英

流利的API一对多代理

[英]Fluent API One-Or-Many to One realtionship

我正在尝试通过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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM