Это мой старый код:LINQ - ЛЕВЫЙ присоединиться
var destinctList = HoldingsList.DistinctBy(x => new { x.ClientName, x.ProductName }).Select(x => new { ClientName = x.ClientName, ClientProductName = x.ProductName }).ToList();
foreach (var item in destinctList)
{
var clientAlias = (from ca in someContext.ClientAlias
where ca.Name == item.ClientName
orderby ca.CreationDate descending
select ca).FirstOrDefault();
if (clientAlias != null)
{
destinctList.Where(x => x.ClientName == item.ClientName).ForEach(x => x.ClientID = clientAlias.ClientID);
}
ClientProductAlias clientProductAlias = null;
if (clientAlias != null)
{
clientProductAlias = (from ca in someContext.ClientProductAlias
where ca.Name == item.ClientProductName
&& ca.ClientID == clientAlias.ClientID
orderby ca.CreationDate descending
select ca).FirstOrDefault();
}
if (clientProductAlias != null)
{
destinctList.Where(x => x.ClientProductName == item.ClientProductName).ForEach(x => x.ClientProductID = clientProductAlias.ClientProductID);
}
}
Это работало отлично, но потребовалось долго.
Теперь я хочу, чтобы все это работало с объединениями. Это то, что у меня есть до сих пор:
(from list in destinctList
join ca in someContext.ClientAlias on list.ClientName equals ca.Name into list_client_join
from list_client in list_client_join.DefaultIfEmpty
join cpa in someContext.ClientProductAlias on new { ClientID = (long)list.ClientID, Name = list.ClientProductName } equals new { cpa.ClientID, cpa.Name } into j1
from j2 in j1.DefaultIfEmpty
orderby list_client.CreationDate descending
orderby j2.CreationDate descending
select new { ClientID = list_client.ClientID,
ClientName = list.ClientName,
ClientProductID = j2.ClientProductID,
ClientProductName = list.ClientProductName }).ToList();
Это то, что я получил до сих пор, но ничего не возвращает. Что я делаю не так?
Может быть, вы можете начать с выбора из одной таблицы, а затем сохранить присоединение новых таблиц по одному за раз, пока вы не найдете проблема. – mbeckish
@mbeckish Я так и делал, но он все еще не работает ... Кажется, что соединение бесполезно ... Любой другой совет? – Willem
@ Виллем - Уххх ... ты действительно понял, что сказал мбеккиш? «Я сделал, но он все еще не работает» - это нечувствительный ответ на этот комментарий. Если да, то в какой момент это происходит? В чем проблема? –