我有A、B和C三个表。
B与A的关系是一对多。
我想找到所有满足C是B的完整子集的A。
下面的LINQ查询(伪代码)表示我想要的结果。
我需要获取所有A,其中B匹配所有C。
例子:
B与A的关系是一对多。
我想找到所有满足C是B的完整子集的A。
下面的LINQ查询(伪代码)表示我想要的结果。
class A
{
public B[] Bs { get; set; }
}
class B
{
public string Text { get; set; }
}
class C
{
public string Text { get; set; }
}
private static IEnumerable<A> Search(C[] C, A[] A)
{
return from a in A
where C.All(c => a.Bs.Any(b => SomeCondition(b, c)))
select a;
}
private static bool SomeCondition(B b, C c)
{
//There we comparing B and C
throw new NotImplementedException();
}
我有以下表结构
A ( a_ID INT PRIMARY KEY )
B ( b_ID INT PRIMARY KEY, a_ID INT, Text NVARCHAR(MAX) )
C ( c_ID INT PRIMARY KEY, Text NVARCHAR(MAX) )
我需要获取所有A,其中B匹配所有C。
例子:
A | a_ID |
| 1 |
| 2 |
| 3 |
B | b_ID | a_ID | Text |
| 1 | 1 | Cat |
| 2 | 1 | Dog |
| 3 | 1 | Rabbit|
| 4 | 2 | Cat |
| 5 | 2 | Cat | -- B can contain duplicates
| 6 | 2 | Rabbit|
C | c_ID | Text |
| 1 | Cat |
| 2 | Dog |
输出
| a_ID |
| 1 |