使用Entity Framework 4.1
我有以下表格,我正在使用Entity Framework
用户(UserId PK身份,用户名,密码)
医师(PhysicianId唯一身份,UserId引用用户PK,PhysicianName)
PhysicianSite (SiteId,Location,PhysicianId FK to Physician table)
问题。实体框架不允许我将Physician与PhysicianSite关联,因为PhysicianId不是Physician表上的主键。
用户是医生的基础,因为我的应用程序有其他类型的用户,例如患者。
我收到以下错误
错误2错误113:多重性在“PhysicianSitePhysician”关系中的角色'Physician'中无效。由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为*。
有人可以告诉我如何在没有PhysicianId作为Physician表的主键的情况下创建与PhysicianSite 在Entity Framework 中的关联吗?
答案 0 :(得分:2)
实体框架需要外键链接到表的主键。但是,Entity Framework的主键不必与数据库中的主键匹配。如果告诉EF PhysicianId是主键,它将不会检查它是否真的如此。它很乐意接受PhysicianId的外键。
如果你有一些外键给PhysicianId,有些外键给真正的主键,你运气不好,但看起来不像你。
答案 1 :(得分:0)
通过再次添加所有表格,从EDMX和Update edmx中删除所有表格。如果不刷新所有导航属性,则会出现此类错误
答案 2 :(得分:0)
如果您有一个带有标识规范的列的链接表,请将其删除(它会将链接表限制为该链接表的ID的一个副本)。