流利的API一对多代理

时间:2018-07-27 16:07:02

标签: c# api entity fluent relationships

我正在尝试用Fluent API实现一对多关系,但暂时没有成功。尤其是在删除操作暂时无法进行的级联上。

需要在两个类事件位置之间实现这种关系。一个事件至少具有一个位置,在另一侧,一个位置可以归因于不同的事件。

编辑:事件的确切位置是一个地点,而不是“至少一个”。抱歉。

当我删除一个事件并且使用该位置的事件不再存在时,则该位置也需要删除。只要某个事件使用了该位置,该位置仍然需要存储,因为一个事件必须具有该位置。

这是我的代码:

Fluent 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; }

1 个答案:

答案 0 :(得分:0)

您需要像下面那样修改Location类和modelBuilder。为什么在类中使用Fluent API使用DataAnnotation。将所有内容保持在流利的API中会更加干净。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="form-control" id="materials">
  <option value="name2" data-price="1.99">name2 + 1.99€</option>
  <option value="name3" data-price="10.99">name3 + 10.99€</option>
  <option value="name4" data-price="15.99">name4 + 15.99€</option>
</select>
<span id="price_material"></span>