У меня есть следующий код в EF Core 3.1 на языке VB. NET
Dim supplierID as string="1545464"
Dim results = (From pa In DC.product.AsNoTracking()
Where pa.supplierID = supplierID
Select pa)
Бросок исключения:
The LINQ expression 'DbSet<product>
.Where(p => Operators.CompareString(
Left: p.supplierID,
Right: __$VB$Local_supplierID_0,
TextCompare: False) == 0)' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync().
Я нашел следующее решение:
Dim supplierID as string="1545464"
Dim results = (From pa In DC.product.AsNoTracking()
Where pa.supplierID.Equals(supplierID)
Select pa)
Правильно ли мое решение с использованием .Equals ()? На языке C#, если он работает с оператором "=="
Я создал небольшое решение, с помощью которого можно воспроизвести ошибку.
Решение имеет 4 проекта:
- Sup.Entities (C#)
- Sup.DAL (C#)
- Sup.ConsoleApp1 (C#)
- Sup. consoleAppVB (VB. NET)
Эта ошибка возникает в Sup.ConsoleAppVB (VB. NET)
This результат в Sup.ConsoleApp1 (C#)
Прикрепленное решение Скачать , который включает проекты и файл SQL для создания базы данных и 1 таблица с 3 рядами.
Пожалуйста, измените строку подключения для UseSqlServer ("...") в контексте OnConfiguring