Есть задача: получить из двух таблиц некоторую вырезку. Например:
Use Northwind
Select Employees.EmployeeID, Orders.OrderID from Employees
join Orders on Employees.EmployeeID = orders.EmployeeID
where Employees.LastName = 'Fuller' And Orders.ShipVia = 2
Получаем 36 строк, отображающих нужную нам информацию.
Теперь пытаемся сделать это с помощью Typed dataset. Создаем новый dataset, перетаскиваем
в него одну таблицу, другую... Один DataAdapter, другой... Relations устанавливаем,
как положено... А как между ними задать этот самый join?

Вариантов два,
на мой взгляд: либо в каждую таблицу dataset гнать все данные без учета соединения
В первую —
Select Employees.EmployeeID from Employees where Employees.LastName = 'Fuller'
Во вторую —
Select Orders.OrderID from Orders where Orders. ShipVia = 2
,
Либо же делать на каждый DataAdapter свой запрос:
Select Employees.EmployeeID from Employees
join Orders on Employees.EmployeeID = orders.EmployeeID
where Employees.LastName = 'Fuller' And Orders.ShipVia = 2
и, соответственно,
Select Orders.OrderID from Employees
join Orders on Employees.EmployeeID = orders.EmployeeID
where Employees.LastName = 'Fuller' And Orders.ShipVia = 2
В первом случае получаем оверхед по передаче данных, во втором — два запроса вместо одного,
и это еще хорошо, что таблиц всего две, а запросы — тривиальные.
Вопрос: как сложный join-запрос по нескольким таблицам с большим количеством данных
загнать в dataset? Или dataset'ы для этого вообще не предназначены?