GUID LIST с содержимым в том, где возвращает 0 результатовC#

Место общения программистов C#
Ответить
Anonymous
 GUID LIST с содержимым в том, где возвращает 0 результатов

Сообщение Anonymous »

В моем основном проекте ASP.NET у меня есть скидка , в которой хранятся связанные идентификаторы продукта как | -Separated Huding Strings. Я разделил эти идентификаторы и пытаюсь получить связанные продукты из таблицы продукта .
Вот мой код:

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

public List GetRelatedProducts(List ids, string lang = "en")
{
List result = new List();

try
{
using (AppDbContext db = new AppDbContextFactory().CreateDbContext())
{
var relatedIds = ids
.Where(x => Guid.TryParse(x, out _))
.Select(Guid.Parse)
.ToList();

result = db.product
.Include(p => p.ProductLangs)
.Include(p => p.ProductPrices)
.Include(p => p.Images)
.Where(p => relatedIds.Contains(p.ID)) // p.ID is Guid
.ToList();

foreach (var p in result)
{
p.ProductLangs = p.ProductLangs
.Where(l => l.LangCode == lang)
.ToList();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return result;
}
< /code>
Когда я отлаживает: < /p>
ids → ["31fcd135-4ea9-469d-8b73-08dc6f3f37a4","e362bed1-deb1-46bd-e6a7-08dc99bb5b87"]

relatedIds → [31fcd135-4ea9-469d-8b73-08dc6f3f37a4, e362bed1-deb1-46bd-e6a7-08dc99bb5b87]
< /code>
Таким образом, список guid действителен.SELECT *
FROM Product
WHERE ID IN ('31fcd135-4ea9-469d-8b73-08dc6f3f37a4', 'e362bed1-deb1-46bd-e6a7-08dc99bb5b87');
< /code>
Но EF Core запрос всегда возвращает 0 результатов. < /p>
Мой вопрос: < /p>
Почему ядро ​​EF Core с < /p>
.Where(p => relatedIds.Contains(p.ID))
не возвращайте строки, в то время как запуск одних и тех же идентификаторов непосредственно в SQL возвращает ожидаемые продукты?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -0-results
Ответить

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

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

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

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

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