System.Linq.Dynamic левое внешнее соединение (метод IQueryable)

У меня есть одна проблема, и я надеюсь, что вы можете объяснить мне решение!

Я хочу сделать левое внешнее соединение между двумя динамическими классами. Я генерирую два класса во время выполнения и добавляю его конфигурацию в entityContext:

public DbModelBuilder AddEntityConfiguration<T>(string className, List<ColumnMetadata> columns, DbModelBuilder builder) where T : class 
{
     var configuration = (EntityTypeConfiguration<T>)Activator.CreateInstance(typeof(DynamicViewConfiguration<>).MakeGenericType(typeof(T)), className, columns);
     builder.Configurations.Add(configuration);

    return builder;
}

После этого я вызываю GetDynamicQueryResults (используйте для этого invoke):

public IQueryable<T> GetDynamicQueryResults<T>(string className, List<ColumnMetadata> columns, DbModelBuilder builder, ref MainContext context) where T : class
{          
    return context.GetDynamicQueryResults<T>(className);
}

В ВМ я пишу это:

var specificGeneric = typeof (IQueryCatalogDynamic).GetMethod("GetDynamicQueryResults").MakeGenericMethod(dynamicClass.GetType());
var specifications = specificGeneric.Invoke(repository,new object[] { dynamicClass.GetType().Name, _fields, builder, context });

var cfosGeneric = typeof (IQueryCatalogDynamic).GetMethod("GetDynamicQueryResults").MakeGenericMethod(dynamicClass2.GetType());
var cfos = cfosGeneric.Invoke(repository,new object[] {dynamicClass2.GetType().Name, _fields, builder, context});

оно работает. Желание сделать левое внешнее соединение между спецификациями и cfos. Я нахожу решение для этого: как сделать левое внешнее соединение с Dynamic Linq?

но как я могу добавить DefaultIfEmpty() для интерфейса IEnumerableSignatures? теперь у меня есть исключение:

Исключение типа "System.Linq.Dynamic.ParseException" произошло в System.Linq.Dynamic.dll, но не было обработано в коде пользователя

Дополнительная информация: не существует применимого статистического метода DefaultIfEmpty

Я надеюсь, что кто-то знает решение.

0 ответов

Другие вопросы по тегам