LINQ to SQL (вставить в таблицу фактов на основе 3 таблиц) - PullRequest
0 голосов
/ 07 сентября 2018

Я не могу работать с приведенным ниже соединением. Идея состоит в том, чтобы найти любые новые комбинации (AumProductId и IdClient) из AceBiMonthlyDaos для создания записи в таблице инвестиций с уникальным идентификатором, если такие AumProductId и IdClient существуют в справочной таблице инструмента и финансового счета соответственно.

var result = (from AceBi in context.AceBiMonthlyDaos
                  join Inst in context.Instruments 
                      on AceBi.AumProductId equals Inst.AceId 
                  join FinAcct in context.FinancialAccounts 
                      on AceBi.IdClient equals FinAcct.AceClientId
                  join Invst in context.Investments 
                      on new { Inst.Id, FinAcct.Id } equals { Invst.InstrumentId, Invst.FinaAcctId} into pair                                       
                      from InvestmentDao in pair.DefaultIfEmpty()

1 Ответ

0 голосов
/ 12 сентября 2018
var query = (from AceBi in context.AceBiMonthlyDaos
                         join Inst in context.Instruments on AceBi.AumProductId equals Inst.AceId
                         join FinAcct in context.FinancialAccounts on AceBi.IdClient equals FinAcct.AceClientId
                         join Invst in context.Investments on new { instrumentId = Inst.Id, finAccountId = FinAcct.Id } equals new { instrumentId = Invst.InstrumentId, finAccountId = Invst.FinAcctId }
                         into pair
                         from Invst in pair.DefaultIfEmpty()
                         select new { Inst, FinAcct, Invst }).Distinct();
...