我必须重用现有的数据库,并且必须使用 Microsoft 的东西。我们想在我们现有的数据库之上创建一个 asp.net MVC 应用程序。DB设计如下(这是对问题的简化)
Table: Students
id
....
Table: Professors
id
....
Table: Images
id
imageble_id
imagable_type
学生和教授可以有多个图像,一个图像属于教授或学生。在旧应用程序中,您有一个 person 类,它是学生和教授的父母。
我的问题是将多态关系 Image 映射到学生和教授。我不得不说我是 asp.net mvc 和实体框架的新手。但我似乎没有找到一种方法来让它发挥作用。这样当你这样做时:
Professor a = MyAppDbContext.Professors.find(1)
a.Images.add(new Image())
它在数据库中创建一个新图像,其中
imageble_id = 1
imagable_type = "Professor"
我尝试按照数据库优先方法的建议定义自己的映射,但我找不到如何映射这个多态外键。
ps:我知道数据库因此不是第三范式,但是不允许更改数据库。