Да, это очень возможно, вот пример из Pro Linq Джозефа Ратца:
using (NorthwindDataContext DB = new NorthwindDataContext())
{
string StatesXml =
@"<States>
<State ID=""OR"" Description=""Oregon"" />
<State ID=""WA"" Description=""Washington"" />
<State ID=""CA"" Description=""California"" />
<State ID=""ID"" Description=""Idaho"" />
<State ID=""MT"" Description=""Montana"" />
<State ID=""NM"" Description=""New Mexico"" />
</States>";
XElement States = XElement.Parse(StatesXml);
var Custs = (from c in DB.Customers
where c.Country == "USA"
select c).AsEnumerable().Join(
States.Elements("State"),
c => c.Region,
s => (string)s.Attribute("ID"),
(c, s) => new
{
Customer = c,
State = (string)s.Attribute("Description")
});
foreach (var Cust in Custs)
{
Console.WriteLine("Customer = {0} : {1} : {2}",
Cust.Customer.CompanyName,
Cust.Customer.Region,
Cust.State);
}
А вот что это вывело бы:
Продовольственный рынок Великих озер: ИЛИ: Орегон
Магазин импорта Hungry Coyote: ИЛИ: Орегон
Lazy K Kountry Store: WA: Washington
Let's Stop N Shop: CA: California
Одинокий сосновый ресторан: ИЛИ: Орегон
Каньон гремучей змеи Бакалея: NM: Нью-Мексико
Save-a-lot Рынки: ID: Айдахо
Большой сыр: ИЛИ: Орегон
The Cracker Box: MT: Монтана
Организаторы Trail's Head Gourmet: Вашингтон: Вашингтон
Белый клевер Рынки: Вашингтон: Вашингтон