c# - 我需要定义这两个实体之间的任何关系吗?
问题描述
大家好,很抱歉这个菜鸟问题。我目前正在为 Travel Planner & Assistant Web 应用程序开发 ASP.NET Core 3.1 WebAPI。我正在使用 EF Core 和 Identity。
我的模型由以下类组成:
Vacation
, Reservation
, Hotel
, Room
, Review
, 自定义IdentityUser
和Record
,UserRecord
以便更好地管理创建和修改日期和用户。
每个Vacation
都有一个List<Reservation>
; 每个Hotel
都有一个List<Room>
和一个List<Review>
。
Reservation
我的问题是,我应该定义和之间的任何关系Room
吗?
我想每个人都Reservation
应该知道Room
要预订哪个,所以拥有Room
内部似乎是合乎逻辑的。但是 的那个实例Room
已经存在于 的List<Room>
中Hotel
。
解决方案
我认为每个预订都应该知道要预订哪个房间,因此将房间放在里面似乎是合乎逻辑的。但是那个房间的实例已经存在于酒店的列表中。
你所坚持的是完全正确的。您不需要将类型Reservation
(例如List<Reservation>
)的集合导航属性添加到您的Room
实体中。
通过在实体上添加Room
导航属性Reservation
,EF Core 可以处理剩余的事情,并且通过应用默认约定,它会认为预订是针对一个房间的,即使您没有在Room
实体。
推荐阅读
- php - 寻找更好的语句来使用,而不是使用带有 sql 查询的 if 语句
- xaml - UWP TreeView ItemTempleteSelector 未执行
- java - 在文件路径中传递变量
- excel - 借助同一列数据将两个Excel工作表数据合并为一个
- php - 如何从有条件的数据库中加载
- python - 将列表数组转换为字典数组
- reactjs - 如何修复在 Gatsby 中乘以 Snipcart 自定义 html?
- elasticsearch - 选择给定日期范围内少于 10 个休假的员工
- excel - 我正在尝试对数据透视表中的计数进行平均,但我想从源数据中进行计算
- php - 如何将值从谷歌日历传递到另一个平台?