2012-07-24 2 views
3

У меня есть две таблицы, которые мне нужно объединить и выбрать значения из, соединение должно быть оставлено внешним соединением. Я пытаюсь использовать LINQ для SQL, но получить 0 вместо реальных значенийlinq to sql внешнее левое соединение с несколькими условиями соединения

ссылки таблице:

refType varchar(250), 
description varchar(250) 

presentationsType (другой стол шахты)

id int 
refType varchar(250), 
OtherFundings varchar(250) 

Запрос I am используется

string organization = (string)Session["organization"]; 
int FiscalYear = Int32.Parse((string)Session["fiscalyear"]); 
string ReportingPeriod = (string)Session["reportingperiod"]; 

var presentationType = from pt in OCHART.References 
         join rf in OCHART.OCHART_PresentationTypes on pt.RefType equals rf.RefType into prt          
         from x in prt.Where(prt2 => prt2.OrganizationName.Equals(organization) && prt2.ReportingPeriod.Equals(ReportingPeriod) && prt2.FiscalYear == FiscalYear).DefaultIfEmpty() 
         where pt.RefType.Equals("09-10.1b")           
         orderby pt.RefOrder ascending 
         select new { 
           refType = pt.RefType, 
           refName = pt.Description, 
           otherFundings = (x.Fundings == null ? 0 : x.Fundings), 
           id = (x.id == null ? 0 : x.id) 
         }; 

Но я получаю id = 0 и otherFunding = 0, несмотря на правильные значения во второй таблице. Я действительно не знаю, что я делаю неправильно.

Поблагодарили бы за помощь.

Спасибо.

+0

Я считаю, что вы можете отметить свой собственный вопрос для удаления, поскольку он не приносит никакой пользы. – Adam

ответ

0

Ненавижу это, когда я создаю вопрос после долгого разлома моей головы, а затем нахожу решение сразу после него самостоятельно.

Пожалуйста, отмените вопрос, моя проблема не связана с соответствующими полями для присоединения.

Извините.

+0

В этом случае, возможно, поделитесь своим собственным ответом. Это может помочь кому-то другому :) – Riaan

Смежные вопросы