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 中的给定关系说明配置此映射,或者至少我不确定如何执行此操作。我尝试使用 WithMany
从 SetupGroup
开始映射,但在这里我不能声明Camera
和Display
应该映射到CameraDisplayMap
上。从CameraDisplayMap
开始,我无法将Id声明为SetupGroup
的外键。我错过了什么吗?
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; }
}