首页 > 解决方案 > 我需要定义这两个实体之间的任何关系吗?

问题描述

大家好,很抱歉这个菜鸟问题。我目前正在为 Travel Planner & Assistant Web 应用程序开发 ASP.NET Core 3.1 WebAPI。我正在使用 EF Core 和 Identity。

我的模型由以下类组成:

Vacation, Reservation, Hotel, Room, Review, 自定义IdentityUserRecord,UserRecord以便更好地管理创建和修改日期和用户。

每个Vacation都有一个List<Reservation>; 每个Hotel都有一个List<Room>和一个List<Review>

Reservation我的问题是,我应该定义和之间的任何关系Room吗?

我想每个人都Reservation应该知道Room要预订哪个,所以拥有Room内部似乎是合乎逻辑的。但是 的那个实例Room已经存在于 的List<Room>Hotel

标签: c#asp.netasp.net-coreasp.net-web-apientity-framework-core

解决方案


我认为每个预订都应该知道要预订哪个房间,因此将房间放在里面似乎是合乎逻辑的。但是那个房间的实例已经存在于酒店的列表中。

你所坚持的是完全正确的。您不需要将类型Reservation(例如List<Reservation>)的集合导航属性添加到您的Room实体中。

通过在实体上添加Room导航属性Reservation,EF Core 可以处理剩余的事情,并且通过应用默认约定,它会认为预订是针对一个房间的,即使您没有在Room实体。


推荐阅读