我正在为实体框架处理连接表的方式而苦苦挣扎,特别是因为实体框架要求连接表具有一个复合键,该组合键由我想要保持关系的两个相关实体上的主键组成。这里的问题是,可以这么说,我需要保持与关系的关系。
这可能是我的数据库设计的问题,或者同样是由于我对 EF 缺乏了解。最好通过示例来说明(见下文);
我有三个表,每个表都有一个主键:-
Table : DispatchChannel
{ *DispatchChannelID integer }
Table : Format
{ *FormatID integer }
Table : EventType
{ *EventTypeID integer }
EventTypes 和 DispatchChannels 之间的关系保存在 EventTypeDispatchChannels 中(见下文),因为它只包含一个复合键,它不会被拉入我们的模型,而实体框架负责维护这种关系。
Table : EventTypeDispatchChannels
{ EventTypeID integer, DispatchChannelID integer
}
我的问题现在出现了,因为对于 EventTypeID 和 DispatchChannelID 的每个组合,我想保存一个可用格式的列表,如果我的 EventTypeDispatchChannels 表有一个主键,这将很容易,因此我的另一个连接表看起来像这样;
Table : EventTypeDispatchChannelFormats
{ EventTypeDispatchChannelID integer, FormatID integer
}
EventTypeDispatchChannels 上缺少主键是我努力完成这项工作的地方,但是如果我有键,那么实体框架不再将其视为链接实体。
我对 C# 比较陌生,所以如果我没有很好地解释这一点,我深表歉意,但任何建议都将不胜感激。