1

我只是在玩 Entity Framework Code First 并在关联一组表的最佳方式上停滞不前。我可能以完全错误的方式看待这个问题,在这种情况下,如果有人能指出我正确的方向,那就太好了。

基本上我有 3 个表,2 个主表和 1 个包含两个表的公共字段。

现在,我陷入困境的是我应该在 2 个主表和第 3 个表之间建立什么类型的关系。两个主表将始终与第 3 个表具有 1-1 关系,但是第 3 个表将与表 1 或表 2 相关,而不是两者。

我可能没有以正确的方式看待这个问题吗?我应该摆脱第三个表,只在两个表中复制公共字段吗?

以下是我的表格结构目前的样子:

表 1:
-- Id
-- RatePricingId
-- 名称
-- CreatedOn
-- ModifiedOn

表 2:
-- Id
-- RatePricingId
-- Name
-- StartOn
-- EndOn
-- CreatedOn
-- ModifiedOn

表 3(公共字段)
-- Id
-- 周一
-- 周二
-- 周三
-- 周四
-- 周五
-- 周六
-- 周日
-- MinNights
-- CheckInOutDays
-- RateType
-- CreatedOn
-- ModifiedOn

干杯,

汤姆

编辑:

我最初设置了它,所以表 1 和表 2 有表 3 的外键,但是在实体框架中使用它时出现问题,这是因为表 3 POCO 对象现在将同时具有表 1 和表 2 的 ICollection它只会真正与表对象之一相关。

4

2 回答 2

0

好吧,您的问题与实体框架、asp.net 等无关,而与数据库设计有关。你应该重新标记

唯一的区别似乎是

  • 开始
  • EndOn

因此,如果没有更多背景,我可能只会使用一张桌子......也许不是你所期望的,但它似乎对我来说更简单。

如果您想保留这三个表,请创建一个从 table1 到 table3 的外键,以及一个从 table2 到 table3 的外键,就可以了。

于 2013-04-27T20:14:20.383 回答
0

我刚刚看到 Morteza Manavi 的一篇博文,我认为它回答了我的问题:

http://weblogs.asp.net/manavi/archive/2011/04/14/associations-in-ef-4-1-code-first-part-3-shared-primary-key-associations.aspx

干杯,

汤姆

于 2013-04-28T09:29:23.347 回答