代码之家  ›  专栏  ›  技术社区  ›  Tejo

是否可以在实体框架中的两个普通字段之间创建关联,从而忽略主键?

  •  5
  • Tejo  · 技术社区  · 14 年前

    我在这三张桌子之间有以下情况:

    alt text

    在我开始解释我在这里要实现的目标之前,让我先澄清三件事:

    1. 我在这个项目上使用visualstudio2008和.net3.5。但我也接受基于VisualStudio2010和.NET4.0的解决方案。

    所以,正如我试图在上面的图片上演示的,在我正在进行的这个项目中,我得到了这3个表。其中一个, 交易线路 ,将文件与事务行相关联,事务行是完整事务的一部分。

    我想说的是 交易线路 没有 文件ID 桌子。田野 文件编号 档案类型 文件 文件 文件编号 永远不要重复。它们可能是主键,但我不能再碰数据库结构了。

    我试着联想 交易线路 文件 把一个 联想 从一到多 . 之后,我选择 联想 然后换到 映射详细信息 地图在哪 交易线路

    他让我在模型屏幕上填写的数据是:

    • 文件 . 文件ID
    • 交易线路 事务ID ;
    • 交易线路 文件编号 ;
    • . 档案类型

    所有的 交易线路 标量属性由它们对应的同名数据库字段设置。但是当我要说明 表中,我唯一可以指定的标量字段是 文件ID 桌子。

    我也试着 文件 文件编号 标量属性实体键标志为true,并且 文件ID 实体标志为false,但没有成功,因为程序警告我该数据库 文件ID 是主键,但设置方式与实体上的主键不同。

    有没有可能 文件编号 档案类型 具有 文件 ? 这种情况有解决办法吗?

    确实是 文件 . 其他表通过此字段与之链接。这个 交易线路

    1 回复  |  直到 14 年前
        1
  •  2
  •   Tejo    14 年前

    我们制定了目标:D。

    感谢 威利医生的徒弟 感谢你给了我们一个解决方案的建议。

    alt text

    1. 我们创建了一个名为VIEWFILEEXTRA的视图,其中只包含我们希望在关联中使用的字段;

    2. 之后,我们基于这个视图创建了一个实体,名为FileExtra;

    3. 从文件中删除FileNumber和FileType标量属性;

    4. 将关联映射中的标量属性设置为指向文件数据库字段FileNumber和FileType;

    5. 在FileExtra和TransactionLine之间创建一个1对多的关联;

    6. 将关联映射指向TransactionLine,并设置字段。

    就这样。非常感谢您的关注和提示:D。