3

我的数据库中有两个表:

TableA:
Id, ColA, ColB, Value   IsSelectable
1   A     B     value1  False
2   C     D     value2  True
3   K     M     value3  True

TableB:
Id, ColA, ColB
1   A     B
2   K     M

现在我想创建一个 Linq 查询,从 TableA 中选择所有行:IsSelectable = true 并且 ColA 等于 TableB 中的 ColA 并且 ColB 等于 TableB 中的 ColB。

在上面的示例中,我想返回第 3 行,因为这是唯一满足我要求的行。

我试过这个:

from ta in _db.TableA
from tb in _db.TableB
where ta.IsSelectable == true
&& (ta.ColA == tb.ColA && ta.ColB == tb.ColB)
select ta;

上述查询的问题是,如果我尝试在调试器中显示其值,则查询超时。

我还尝试将我将 TableA 连接到 TableB 的两个表连接起来。但是当尝试从连接结果中选择 TableA 时,我无法创建新的 TableA 记录,因为我的 Id 是数据库创建的并且没有设置器。

我怎样才能做到这一点?

4

1 回答 1

1

尝试这个

from ta in _db.TableA
from t in _db.TableB on new {a=ta.ColA,b=ta.ColB} equals new{a= t.ColA,b=t.ColB} 
into tc from tb in tc
where ta.IsSelectable == true
select ta;
于 2013-09-20T11:00:13.577 回答