使用实体框架4.1

我有以下与实体框架一起使用的表格


用户(UserId PK身份,UserName,Password)
医师(PhysicianId唯一身份,UserId引用用户PK,PhysicianName)
PhysicianSite(SiteId,Location,PhysicianId FK到Physician表)


问题。实体框架不允许我将Physician与PhysicianSite关联,因为PhysicianId不是Physician表上的主键。

用户是医师的基础,因为我的应用程序具有其他类型的用户,例如患者。

我收到以下错误

错误2错误113:多重性在关系'PhysicianSitePhysician'中的角色'Physician'中无效。因为从属角色属性不是关键属性,所以从属角色多重性的上限必须为*。

有人可以告诉我如何在PhysicianId不是Physician表的主键的情况下,在实体框架中创建从Physician到PhysicianSite的关联吗?

最佳答案

实体框架要求外键链接到表的主键。但是,实体框架的主键不必与数据库中的主键匹配。如果您告诉EF PhysicianId是主键,它将不会检查它是否确实是主键。并且它将很乐意接受PhysicianId的外键。

如果您有一些PhysicianId的外键,而另外一些是真正的主键,那么您就不走运了,但这似乎不尽然。

10-08 19:25