Могу ли я преобразовать IQueryable <T>в DbSet <T>с таким же общим c типом в NET Core EF? - PullRequest
0 голосов
/ 21 июня 2020
// Foo.cs
new Bar().Convert(
  Enumerable.Empty<Client>().AsQueryable();
)


// Bar.cs
public Client[] Convert(IQueryable<Client> query)
{
    Client[] result;

    using (var ctx = new StockContext())
    {
        result = ctx.Clients.Concat(query).ToArray();
    }

    return result;
}

Обратите внимание на приведенные выше коды, поскольку Foo.cs и Bar.cs не находятся в одной сборке, поэтому я хочу передать IQueryable в Bar.cs и преобразовать его в DbSet.

Если я запускаю коды точно так же, как я написал выше, мне выдает System.InvalidCastException: 'Unable to cast object of type System.Linq.EnumerableQuery'1[Stock.Models.DTO.Client]' to type Microsoft.EntityFrameworkCore.DbSet'1[Stock.Models.DTO.Client]'.'

...