在使用 Entity Framework Core Code First 的过程中, 如何设置两个实体之间的关系是可选的.
模型案例
比如在一个类似 Kodi 这样的本地电影管理软件中,可能会管理两类对象:电影信息、视频文件。视频文件和电影信息互相关联。一部电影可能关联多个视频文件(不同剪辑版本、不同编码压缩制式等),所以它们之间是一对多的关系。某个视频文件也可能没有与之匹配的电影信息,所以这种关联是可选的。
如果单纯用 SQLite 数据库实现,可以设计两张表:movie_info
和 mediafile
。mediafile
表中存在一个外键与 movie_info
表相关联。并且这个外键可以为 null
,表示该条视频文件记录没有与之匹配的电影信息。
用 Entity Framework Core ,通过代码优先(Code First)方式,先建立了两个简单的 POCO 类:
public class MediaFile
{
public int MovieFileId{
get; set; }
public string FilePath {
get; set; }
public int MovieId {
get; set; } // 显示地定义了指向 Movie 的外键
public Movie Movie {
get;