EF Core 3.0 - Linq 2 SQL не может быть переведен - PullRequest
0 голосов
/ 10 октября 2019

Я написал следующий запрос, который работал в ядре .net 2.2

public static TEnt AddOrGet<TEnt, TKey>(this DbSet<TEnt> dbSet, TEnt entity, Func<TEnt, TKey> predicate) where TEnt : class
        {
            IQueryable<TEnt> exists = dbSet.Where(c => predicate(entity).Equals(predicate(c)));
            return exists.Count() > 0 ? exists.First() : dbSet.Add(entity).Entity;
        }

, который я использовал следующим образом.

DocumentMetadata documentMetadata = new DocumentMetadata()
                {
                    Name = metadata.Key
                };

masterContext.DocumentMetadata.AddOrGet(documentMetadata, x => x.Name);

после обновления до EF Core 3.0, онперестал работать согласно сообщению об ошибке ниже. https://github.com/aspnet/EntityFrameworkCore/issues/18020

Теперь, как мне перевести это, чтобы EF core 3.0 мог правильно перевести его в SQL?

Другими словами, как мне теперь реализовать метод AddOrGet в EF-Core 3.0?

...