1

我正在使用 VS 2010 实体框架设计器来修改一些从数据库自动生成的实体。

数据库结构由我正在为其构建 UI 的产品定义,因此我无法对其进行修改。

该数据库具有多对多关系的表,这些表完全基于两个表上非键列中的公共值。

  • 表 1用户有一个 id 列userId和另一个名为userProfile的列。
  • 表 2 SecurityProfile有一个 id 列securityProfileId并且还有一个列userProfile

换句话说,用户配置文件只是用户到 SecurityProfiles 的映射的名称。

该向导为 Users 和 SecurityProfile 表创建了实体。我创建了一个名为 UserProfile 的新实体,它有一个关键字段:userProfile

我创建了从 UserProfile 到 User 以及从 UserProfile 到 SecurityProfile 的一对多关联。这一切都很好,只是 UserProfile 实体没有表映射,所以它不会编译。

如何在实体框架中创建此关联?

更新:

如果无法使用 EF(如第一个答案所建议的那样),是否可以手动创建一个非绑定实体,我可以使用它来链接这两个实体,以便我公开一个至少更容易一点的对象模型导航?

即,我将使UserSecurityProfile实体抽象并手动定义这些扩展,并使用指向我手动创建的 UserProfile 实体的适当属性

4

1 回答 1

3

你不会。EF 无法处理数据库中不存在的多对多关联。EF 要求与数据库相同的引用完整性——在这种情况下,它要求连接表存在并映射到图中使用的关联。

于 2012-06-06T10:05:45.130 回答