Как преобразовать имя ссылки на строку в модель db-context, используя c # - PullRequest
0 голосов
/ 04 июля 2019

Преобразовать имя ссылки на строку в запрос выражения lambada.

Это мой пробный код.

protected readonly ApplicationDbContext _context;

public AssetRequestController(ApplicationDbContext context)
{
    _context = context; 
}

string tableName = "FlowStep";

var dbset = QueryExtensions.Query(_context, tableName);

public static partial class QueryExtensions
{
    public static IQueryable Query(this DbContext context, string entityName) =>
            context.Query(context.Model.FindEntityType(entityName).ClrType);

    static readonly MethodInfo SetMethod = typeof(DbContext).GetMethod(nameof(DbContext.Set));

    public static IQueryable Query(this DbContext context, Type entityType) =>
            (IQueryable)SetMethod.MakeGenericMethod(entityType).Invoke(context, null);
}

Мой DbContext

public class ApplicationDbContext : IdentityDbContext
{
   public DbSet<FlowStep> FlowStep { get; set; }
}

Я использую System.Linq.Dynamic.Core для динамического добавления в лямбда-выражениях запросов в EF.

Я хочу преобразовать имя строки (имя модели) в запрос лямбда-выражений.Я нашел этот ответ.

Динамически доступ к таблице в EF Core 2.0

Но выдает ошибку

System.NullReferenceException: 'Objectссылка не установлена ​​на экземпляр> объекта. '

Microsoft.EntityFrameworkCore.Metadata.IModel.FindEntityType (...) вернул> null.

enter image description here

...