sql-server - 实体框架模型上同一个表的两个外键元素?
问题描述
我正在尝试使用 Entity Framework 创建一个数据库表,该表将有两列,一列用于Person,另一列用于Person。换句话说,将有两个外键,每个外键都指向同一张表上的两条不同的记录。
最接近我的情况的一个问题写得不好,也没有答案。StackOverflow 和其他地方的大多数问题都涉及许多多条记录的集合。在我的情况下,我只需要知道如何为模型上的同一张表设置两个外键。
这对我来说看起来不对,Visual Studio 也不喜欢它,因为代码引用了 Person 两次。
public class Lesson
{
[Key]
public int LessonId { get; set; }
[ForeignKey("Person")]
[Column(Order = 0)]
public string studentId { get; set; }
public Person Person { get; set; }
[ForeignKey("Person")]
[Column(Order = 1)]
public string teacherId { get; set; }
public Person Person { get; set; }
}
你觉得这合适吗?我试图解决错误的问题吗?...或者,更好的是,是否有一些语法可以使这项工作?
解决方案
你觉得这合适吗?
不。试试类似的东西:
public class Lesson
{
[Key]
public int LessonId { get; set; }
[ForeignKey("Student")]
public string StudentId { get; set; }
public Person Student { get; set; }
[ForeignKey("Teacher")]
public string TeacherId { get; set; }
public Person Teacher{ get; set; }
}
推荐阅读
- javascript - Google 表格函数 importJSON 在新列中返回对象
- blazor - 在我的自定义选择 blazor 组件中进行选择时的回调
- asp.net-mvc - 将数据从视图模型传递到控制器
- c# - MailMerge - Excel(数据)到 Word(模板) - 使用 OpenXML
- python - 如何在 django 数据库中检索数据作为列表
- python - 在 VirtualBox 中运行的 Windows 10 上检测 USB 输入设备的插入/移除
- html - 整合二维码作为壁纸
- ffmpeg - 使用 FFMPEG 将不同的 MP4 与 srt 组合成一个文件
- javascript - JS通过命令和任意数字分隔字符串
- python - 如何在事件 wxWidgets 中传递自定义数据