EF 中的映射关系问题

本文关键字:关系 问题 映射 EF | 更新日期: 2023-09-27 18:34:02

我有以下域模型(伪):

public class Camera {
    public int Id { get; set; }
}
public class Display {
    public int Id { get; set; }
}
public class SetupGroup {
    public int Id { get; set; }
    public virtual ICollection<CameraDisplayMap> Mappings { get; set; }
}
public class CameraDisplayMap {
    public int Id { get; set; }
    public Camera Camera { get; set; }
    public Display Display { get; set; }
}

应按以下方式映射:

[Cameras]
Id (primary key)
[Displays]
Id (primary key)
[SetupGroup]
Id (primary key)
[CameraDisplayMap]
Id (foreign key to [SetupGroup]
Camera (foreign key to [Cameras])
Display (foreign key to [Display])

我知道数据模型并不理想,但这是支持我们的遗留应用程序之一的要求,该应用程序使用应用程序逻辑处理大多数映射等。

目前,我无法使用 EF Code First Fluent 配置 API 中的给定关系说明配置此映射,或者至少我不确定如何执行此操作。我尝试使用 WithManySetupGroup 开始映射,但在这里我不能声明CameraDisplay应该映射到CameraDisplayMap上。从CameraDisplayMap开始,我无法将Id声明为SetupGroup的外键。我错过了什么吗?

EF 中的映射关系问题

CameraDisplayMap 类应该如下所示。

public class CameraDisplayMap {
    public int Id { get; set; } //primary key
    public int? SetupGroupId { get; set; }       //foreign key to [SetupGroup]
    public int? CameraId { get; set; }           //foreign key to [Camera]
    public int? DisplayId Displays { get; set; } //foreign key to [Display]
    public virtual SetupGroup SetupGroups { get; set; }
    public virtual Camera Cameras { get; set; }
    public virtual Display Displays { get; set; }
}