EF Core 8 — метод запроса Union LINQ не работает с произвольными даннымиC#

Место общения программистов C#
Ответить
Anonymous
 EF Core 8 — метод запроса Union LINQ не работает с произвольными данными

Сообщение Anonymous »

Я использую EF Core 8 с Npgsql, и у меня есть класс модели Attempt:

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

public class Attempt(int Id, string UserId, int score)
{
public int Id { get; set; } = Id;
public string UserId { get; set; } = UserId!;
public int score { get; set; } = score;
}
Я пытаюсь выполнить запрос, при этом я предпринимаю произвольную попытку (по сути, это просто данные, а не конкретно существующую строку в базе данных) и объединяю их с текущими значениями в таблице в качестве основы для других запросов. Аналогично этому выражению SQL:

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

SELECT *
FROM your_table
UNION
SELECT 'My_data', 56, 'Also_My_Data';
Мой запрос EF Core выглядит следующим образом:

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

Attempt newAttempt = new(7, "Herb", 56);
var attemptsUnionOne = await db.Attempt.Union([newAttempt]).ToListAsync();
Однако я сразу же получаю исключение, говорящее:

Выражение LINQ 'DbSet().Union(__p_0) 'не удалось перевести. Либо перепишите запрос в форме, которую можно перевести, либо явно переключитесь на оценку клиента, вставив вызов AsEnumerable, AsAsyncEnumerable, ToList или ToListAsync. См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.

Есть ли у кого-нибудь идеи, почему Union в моем случае перевести нельзя?

Подробнее здесь: https://stackoverflow.com/questions/791 ... trary-data
Ответить

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

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

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

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

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