EF Core 3.0-无法翻译Linq 2 SQL

时间:2019-10-10 19:06:00

标签: c# entity-framework .net-core-3.0 ef-core-3.0

我编写了以下查询,该查询在.net core 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?

换句话说,如何在EF-Core 3.0中实现AddOrGet方法?

0 个答案:

没有答案