powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Динамический linq
14 сообщений из 39, страница 2 из 2
Динамический linq
    #39615933
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,
Её уже сделали.
В штатном EF, в хибере, в биндинге AndroidStudio.
Т.к. когда при изменении модели или раздела биндинг в XML студия IDE генерит классы программисту.
...
Рейтинг: 0 / 0
Динамический linq
    #39615966
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЕвгенийВ,
Её уже сделали.
В штатном EF, в хибере, в биндинге AndroidStudio.
Т.к. когда при изменении модели или раздела биндинг в XML студия IDE генерит классы программисту.
биндинг в XML в топку.
Я показал как решить поставленную задачу в не зависимости от ее вменяемости, скорее из академических целей, а не разглагольствовал о "великом".
...
Рейтинг: 0 / 0
Динамический linq
    #39615974
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВбиндинг в XML в топку. wpf в xaml.
Другого вроде нет. Может в шарпе по другому.....

ЕвгенийВЯ показал как решить поставленную задачу в не зависимости от ее вменяемости, скорее из академических целей, а не разглагольствовал о "великом".
Да. Это круто.
Удачи!
...
Рейтинг: 0 / 0
Динамический linq
    #39615982
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВДядя Коля,
как то так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 public static IQueryable func(this DwhContext context, string table)
        {
            var type = context.GetType();
            var tab = type.GetProperty(table);
            var prop = tab.GetValue(context) as IQueryable;
            var e = prop.Expression;
            var t = prop.ElementType;
            var expr = MakeExpression(t);
            var qt = typeof(Queryable).GetMethods()
                .FirstOrDefault(x => x.Name == "Where" && x.GetParameters().Length == 2)
                .MakeGenericMethod(t);
            var res = Expression.Call(qt,e, expr);
            var tmp = Expression.Lambda(res).Compile().DynamicInvoke();
            return tmp as IQueryable;
        }
        static Expression MakeExpression(Type t)
        {
            var par = Expression.Parameter(t, "x");
            var id = t.GetProperty("Id");
            var left = Expression.MakeMemberAccess(par, id);
            var rigth = Expression.Constant(5);
            var body = Expression.Equal(left, rigth);
            var lambda = Expression.Lambda(body, par);
            return lambda;
        }



Этот лютый код служит цели - достать из произвольной таблицы сущность с id==5 ??
...
Рейтинг: 0 / 0
Динамический linq
    #39615985
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,

Забыл - достать сущность с id==5 для дяди Коли?

Или любой может её получить?
...
Рейтинг: 0 / 0
Динамический linq
    #39616014
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом
Этот лютый код служит цели - достать из произвольной таблицы сущность с id==5 ??
да.
...
Рейтинг: 0 / 0
Динамический linq
    #39616023
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВАгнец за бортомЭтот лютый код служит цели - достать из произвольной таблицы сущность с id==5 ??
да.

То есть правильней метод назвать на func, а

Код: c#
1.
public static IQueryable getEntityWithID5FromAnyTable(this DwhContext context, string table)



???
...
Рейтинг: 0 / 0
Динамический linq
    #39616027
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно для альтернативно одаренных - почему этого не достаточно?

Студию открыть не могу - окно ответа - моя IDE.

public static IQueryable func(this DwhContext context, string table)
{
var type = context.GetType();
var tab = type.GetProperty(table);
var t = tab.GetType();

return context.Set<t>()
}
...
Рейтинг: 0 / 0
Динамический linq
    #39616028
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static IQueryable func(this DwhContext context, string table)
        {
            var type = context.GetType();
            var tab = type.GetProperty(table);
            var t = tab.GetType();

            return context.Set<t>()
        }



Сорри.
...
Рейтинг: 0 / 0
Динамический linq
    #39616036
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static IQueryable func(this DwhContext context, string table)
        {
            var type = context.GetType();
            var tab = type.GetProperty(table);
            var t = tab.GetType();

            return context.Set<t>()
        }



Сорри.
Ты путаешь тип-параметр с экземпляром класса Type.
...
Рейтинг: 0 / 0
Динамический linq
    #39616049
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВТы путаешь тип-параметр с экземпляром класса Type.

То есть - generic-type из строки вообще не получить?
...
Рейтинг: 0 / 0
Динамический linq
    #39616083
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
только нетипизированный
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public static IQueryable func(this DwhContext context, string table)
        {
            var type = context.GetType();
            var tab = type.GetProperty(table);
            var prop = tab.GetValue(context) as IQueryable;
            var t = prop.ElementType;

            var set = typeof(DbContext).GetMethod("Set")
                .MakeGenericMethod(t);
            return set.Invoke(context, null) as IQueryable;
        }
...
Рейтинг: 0 / 0
Динамический linq
    #39616092
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомТо есть - generic-type из строки вообще не получить?

А как из кода собираешься с этим работать?
...
Рейтинг: 0 / 0
Динамический linq
    #39616567
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще есть dynamic linq.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Динамический linq
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]