DDL для таблиц базы данных:Linq для SQL внешних ключей
Users:
id - int - identity
name - varchar - unique
PCs:
id - int - idnetity
name - varchar - unique
userid - FK to Users
Apps:
id - int - identity
name - varchar
pcid - FK to PCs
Я создал DataContext с помощью Linq To SQL дизайнер в Visual Studio 2008.
Я хочу, чтобы выполнить этот запрос:
select
users.name,
pcs.name,
apps.name
from
users u
join pcs p on p.userid = u.id
join apps a on a.pcid = p.id
Мне сказали в другом потоке, где я отправил ответ, что следующее было неверно и что оно создало перекрестное соединение.
var query = from u in db.Users // gets all users
from p in u.PCs // gets all pcs for user
from a in p.Apps // gets all apps for pc
select new
{
username = u.Name,
pcname = p.Name,
appname = a.Name
};
Когда я выполняю этот запрос, я получаю правильные результаты. Перекрестное соединение с двумя записями в каждой таблице должно возвращать 8 записей, но мой запрос правильно возвращает две записи.
Мне повезло, или человек говорит мне, что я не в порядке смущен?
Спасибо, Гленн. Уже поздно, просто хотел убедиться, что я не сумасшедший. http://stackoverflow.com/questions/282791/c-operator-in-linq-query#282875 – LeppyR64 2008-11-12 05:16:58