Linq子查询或where子句

时间:2013-01-25 03:21:02

标签: sql-server linq linq-to-sql

我希望使用LINQ执行类似的操作:

select t1.vendor, t1.location 
from t1, t2
where t1.vendor = t2.vendor and t1.location = t2.location 

但是t2不是一个表,它是data filter object我想创建以包含如下数据。

  ┌──────────┬───────────┬
  │  Vendor  |  location │
  ├──────────┬───────────|
  |    v1    |     100   |
  |    v1    |     102   |
  |    v1    |     103   |
  |    v2    |     100   |
  |    v3    |     203   |
  ├──────────────────────┼

我的问题是:包含这些过滤数据的最佳数据结构是什么,并使用它来查询来自SQL Server的表t1?由于供应商到位置是一对多的关系,我无法使用字典或哈希表。 NameValueCollection不是通用类型。 此外,LINQ语法应该如何从SQL Server检索数据?请帮忙!

谢谢! 温迪

1 个答案:

答案 0 :(得分:0)

您可以尝试为您的t2使用匿名类型; 像这样:

var t2 = from xx in context.SomeTable
select new {Vendor = xx.v, Location = xx.l};

然后你可以在下一个查询中使用t2。

示例:

var result = from t1 in context.T1
              from tt in t2
              where t1.vendor = tt.vendor && t1.location = tt.location 
             select new {t1.vendor, t1.location }

或者您可以加入t1和t2