首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在实体框架中手动添加复合关联?

如何在实体框架中手动添加复合关联?
EN

Stack Overflow用户
提问于 2009-02-23 22:25:21
回答 3查看 4.7K关注 0票数 7

这似乎是一个常见的情况,但由于任何原因,我被EF的软弱无力的编辑所阻碍。

我有两张桌子,像这样:

代码语言:javascript
复制
Table1
(
Column1 int, PK
Column2 int, PK
)

Table2
(
Column1 int, PK, FK
Column2 int, PK, FK
Column3 int, PK
)

现在,数据库(超出我们的控制范围)没有外键约束。在这个例子中,Table2应该有一个引用Table1的外键约束(Column1,Column2)。换句话说,Table2的前两列引用来自Table1的主键。这在任何普通数据库中都是一个日常问题。

在其他框架(如LLBLGenPro )中,我们可以以非常简单的方式手动添加关系。然而,我们无法在EF的编辑器中找到实现这一目标的方法。这个“映射细节”窗口是可怕的和非直观的。到目前为止,我们已经成功地选择了映射中的各种表,但它似乎总是希望在所有列上关联。

有什么想法或参考吗?

EN

回答 3

Stack Overflow用户

发布于 2009-04-27 04:04:56

假设你有两个实体就位。

association.

  • Select
  1. 右键单击Table1实体标题,然后从右侧选择add
  2. Table2。(在此向导中设置任何其他属性)
  3. 选择新创建的关联并编辑映射。(应该已经选中)
  4. 在“映射详细信息”窗口中,选择Table2

应该是这样的。

票数 7
EN

Stack Overflow用户

发布于 2009-02-24 03:29:28

  1. 创建具有相同列但正确的FKs的“临时”表。如果不能更改“真实的”数据库,请使用DB的备份。如果没有FKs,就不要麻烦地映射表。如果您使用一个新模型,这可能是最简单的,因为在设计器中删除不会删除存储映射。
  2. 映射它们与向导一起使用。
  3. 将EDMX打开为XML (不在XML中),并使用您真正想要映射的表替换表名。
  4. 删除“临时”表。

一般建议:在做非标准的事情时,手动编辑EDMX .无FKs =非标准。GUI设计器只处理某些情况。

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 13:58:10

association.

  • Select
  1. 右键单击Table1实体标题,然后从右侧选择add
  2. Table2。(在此wizard)
  3. Doubleclick中设置新创建的关联的任何其他属性,并设置属性

)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/579647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档