c# - Entity Framework 协会 : Error Because the Dependent Role properties are not the key properties

标签 c# entity-framework domain-driven-design dns entity

使用 Entity Framework 4.1

我在 Entity Framework 中使用了以下表格

  • 用户(UserId PK身份,UserName,密码)

  • Physician(PhysicianId唯一标识,UserId引用用户PK,PhysicianName)

  • PhysicianSite(SiteId、Location、PhysicianId FK 到 Physician 表)

问题。 Entity Framework 不允许我将 Physician 与 PhysicianSite 相关联,因为 PhysicianId 不是 Physician 表上的主键。

User 是 Physician 的基础,因为我的应用程序还有其他类型的 Users,例如 Patients。

出现以下错误

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

有人能告诉我如何在 Entity Framework 中创建与 Physician 到 PhysicianSite 的关联,而 PhysicianId 不是 Physician 表上的主键吗?

最佳答案

Entity Framework 需要外键链接到表的主键。但是, Entity Framework 的主键不必与数据库中的主键匹配。如果您告诉 EF PhysicianId 是主键,它不会去检查它是否真的是。它会很乐意接受 PhysicianId 的外键。

如果您有一些指向 PhysicianId 的外键,而另一些则指向真正的主键,那么您就不走运了,但事实并非如此。

关于c# - Entity Framework 协会 : Error Because the Dependent Role properties are not the key properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8450786/

相关文章:

c# - 为什么我的 EF 似乎从正在运行的 SQL View 中返回重复的行?

c# - 使用 EF 6 和 Oracle.ManagedDataAccess 时表不存在

code-generation - 哪些 .NET 框架允许您先创建业务实体,然后再创建数据库

c# - 使用内部构造函数实例化类

c# - 需要从数据库生成 ASP.NET 控件

c# - 在后台/异步任务中插入数据最好的方法是什么?

entity-framework - Entity Framework 兼容 POCO 的最短语法

c# - Gridview 中的 TextBox 返回 null 或 'System.Web.UI.WebControls.TextBox'

architecture - 在 CQRS 和 DDD 的背景下,您将如何处理略有不同的用例?

domain-driven-design - 可配置规则驱动系统中的 DDD