来自2个表的Linq匹配值

来自2个表的Linq匹配值,linq,entity-framework,linq-to-sql,Linq,Entity Framework,Linq To Sql,我有两个表,我只想选择“活动”值。表1的PeriodID仅固定为D1、D2、D3和D4。它不会再增加了。活动状态可能会更改 我的表1如下: PeriodID | Active ------------------ D1 | Y D2 | Y D3 | N D4 | Y RateID | CompanyCode | D1 | D2 | D3 | D4 -------------------------------

我有两个表,我只想选择“活动”值。表1的PeriodID仅固定为D1、D2、D3和D4。它不会再增加了。活动状态可能会更改

我的表1如下:

PeriodID | Active
------------------
   D1    |    Y
   D2    |    Y
   D3    |    N
   D4    |    Y
RateID | CompanyCode |  D1  |  D2  |  D3  | D4
------------------------------------------------
  1    |    C1       |  1.1 |  1.5 |  1.9 | 2.0
  2    |    C2       |  2.1 |  2.5 |  2.9 | 3.0
我的表2如下:

PeriodID | Active
------------------
   D1    |    Y
   D2    |    Y
   D3    |    N
   D4    |    Y
RateID | CompanyCode |  D1  |  D2  |  D3  | D4
------------------------------------------------
  1    |    C1       |  1.1 |  1.5 |  1.9 | 2.0
  2    |    C2       |  2.1 |  2.5 |  2.9 | 3.0
我如何实现以下预期结果?谢谢

RateID | CompanyCode |  D1  |  D2  | D4
----------------------------------------
  1    |      C1     |  1.1 |  1.5 | 2.0
  2    |      C2     |  2.1 |  2.5 | 3.0
以下是我不带过滤器的查询:

From c In DB.Table2 Select c.D1,c.D2,c.D3,c.D4

这是一个没有固定结果形状的查询示例,返回的列数取决于数据库中的数据。林克在这方面不是很在行。我并不是说这是不可能的,但这并不直观,你至少需要两个查询,一个接一个。PeriodId应该是ForeignKey,而不是具有相同名称的列。如果PeriodId是ForeignKey,我如何检查active或inactive的速率?——@ethicalogics这是所有人的家庭作业:)你知道怎么做吗?如果使用SQL呢?-@Kris Vandermotten