Я бьюсь головой об стену из-за этого ... мой SQL не самый лучший, поэтому я не могу решить его и не могу найти ответ на этот вопрос ...
Вопрос заключается в следующем: как объединить три таблицы, используя синтаксис запроса (LINQ), если ключи промежуточной таблицы являются исключительными? Я имею в виду ... У меня есть таблица A с внешним ключом, указывающим на B ... B имеет внешний ключ, указывающий на A, а другой на C ... И C указывает на B. В таблице B, если FK для A не является нулевым, тогда FK для C является нулевым (и наоборот), и между этими отношениями есть ключ связывания.
Это похоже на то, если ключ к A - это вход, а ключ к B - это выход, а Linking Key - это продукт. Они не могут быть в одной линии, но у двух разных движений один и тот же продукт. Цель - получить информацию об A + B + C.
Например, с этими таблицами:
Если бы я хотел узнать информацию о (Таблица A) ID = 'a', тогда запрос должен вернуть
Или что-то, что могло бы сработать, чтобы дать что-то подобное ...
У меня есть:
vM_Report_Aux = (from ctbr in db.Rec_Cont_Mov
join rM in db.Rec_Mov on ctbr.Rec_ContabID equals rM.Rec_ContabID
join brm in db.Rec_B_Mov on rM.RecID equals bRM.RecID
select new
{
ID = ctbr.ID,
Val = rM.Val
}).OrderBy(q => q.ID).ToList();
Этот запрос возвращает ноль ... если я беру одно соединение, это дает мне половину результатов (например, таблицу А) ... Если я беру другое (и корректирую запрос), оно возвращает другую половину ( таблица с). В обоих случаях показана таблица B ...
Есть ли способ сделать это и получить ожидаемый результат?
Спасибо