Закажите запрос EF Core от DB1 на основе собственности от DB2C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Закажите запрос EF Core от DB1 на основе собственности от DB2

Сообщение Anonymous »

Мне нужно запустить основной запрос EF на db1 , который может быть заказан свойством из db2 .
Проблема: у меня есть db1 с таблицей пользователей . Из db1 есть AddicsId: x из db2 .
Я делаю запрос для пользователей и я хочу иметь возможность заказать результаты, используя свойства от DB2 . Db1 , затем принесите все адреса из db2 с адресами AddersIds от каждого пользователя , а затем используйте address.localits.name для их сортировки. Это займет некоторое время ... < /p>
Я придумал идею, которая могла бы повысить производительность, но у меня есть проблемы с ее реализацией.

Код: Выделить всё

AddressId, OrderIndex
) На основе команды OrderBy я смогу создать запрос пользователей , используя AddheSid s, чтобы заказать их по их локальности.

Код: Выделить всё

var addressesOrderMap = await DB2Context.Addresses
.Include(a => a.Locality)
.OrderBy(a => a.Locality.Name)
.Select((a, index) => new { a.Id, OrderIndex = index })
.ToDictionaryAsync(x => x.Id, x => x.OrderIndex);
< /code>
Результат: < /p>
{
17: 0,
21: 1,
10: 2,
...
}
< /code>
Это будет стоить меньше, чем фактически получить все адреса .. < /p>
Затем сделайте что -то вроде этого: < /p>
var pageAddresses = await DB1Context.Users
.Select(u => u.AddressId)
.Distinct()
.ToListAsync();

// Filter the map to only the needed IDs
var filteredOrderMap = addressOrderMap
.Where(kvp => pageAddresses.Contains(kvp.Key))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

// Query users and order by the precomputed OrderIndex
var orderedUsers = await DB1Context.Users
.Where(c => filteredOrderMap.Keys.Contains(c.AddressId))
.OrderBy(c => filteredOrderMap[c.AddressId])
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToListAsync();
Это не сработает, потому что EF Core не может перевести FilteredOrderMap [c.AddressId] на sql.
Любые идеи или решения?

Подробнее здесь: https://stackoverflow.com/questions/797 ... y-from-db2
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Закажите запрос EF от DB1 на основе собственности от DB2
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Соединение Python RDS DB2: Ошибка типа: класс com.ibm.db2.jcc.DB2Driver не найден
    Anonymous » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Соединение Python RDS DB2: Ошибка типа: класс com.ibm.db2.jcc.DB2Driver не найден
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Закажите результаты запроса mysql в столбце, основанном на значениях в плоском массиве PHP [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • MySQL Получите сумму того же продукта от того же PO и закажите их по названию продукта
    Anonymous » » в форуме MySql
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»