powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Исключить поля в запросе EF4
19 сообщений из 19, страница 1 из 1
Исключить поля в запросе EF4
    #38918426
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Подскажите пожалуйста как можно исключить свойства из запроса по их названию?

К примеру:
Код: c#
1.
2.
3.
entity.Table.ToList();
..имеет на выходе набор свойств
Id, Name, Date, Rem 


Как мне можно из этого готового набора исключить Name и Rem? по строковым названием этих полей 'Name' и 'Rem'?
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918496
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoЗдравствуйте.

Подскажите пожалуйста как можно исключить свойства из запроса по их названию?

К примеру:
Код: c#
1.
2.
3.
entity.Table.ToList();
..имеет на выходе набор свойств
Id, Name, Date, Rem 


Как мне можно из этого готового набора исключить Name и Rem? по строковым названием этих полей 'Name' и 'Rem'?

А зачем?? Плохие игры.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918618
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, может так понятнее будет что я хочу:

Код: c#
1.
2.
3.
4.
5.
6.
7.
var query = 
     dbcontext
     .Table
     
     // Как здесь исключить из выборки поля(свойства), по строковым названиям 'Name' и 'Rem'     

     .ToList(); 
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918687
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoВот, может так понятнее будет что я хочу:

Код: c#
1.
2.
3.
4.
5.
6.
7.
var query = 
     dbcontext
     .Table
     
     // Как здесь исключить из выборки поля(свойства), по строковым названиям 'Name' и 'Rem'     

     .ToList(); 



Да понятно, чего вы хотите. То что вы хотите - ПЛОХО.
Да еще и по строковым значениям.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918715
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

... через Expression можно, создав предварительно класс нужной выборки ... вот примерно так (здесь таблица Users, а выборка только Id и ФИО в классе UserListDTO):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private static readonly Expression<Func<Users, UserListDTO>> AsUserListDTO =
            x => new UserListDTO
                {
                    serial = x.serial,
                    familyname = x.familyname.TrimEnd()
                };

[HttpGet] 
        public IQueryable<UserListDTO> GetUserList()
        {
            return db.Users.Select(AsUserListDTO).OrderBy(c => c.familyname);
        }
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918726
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikNechto,

... через Expression можно, создав предварительно класс нужной выборки ... вот примерно так (здесь таблица Users, а выборка только Id и ФИО в классе UserListDTO):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private static readonly Expression<Func<Users, UserListDTO>> AsUserListDTO =
            x => new UserListDTO
                {
                    serial = x.serial,
                    familyname = x.familyname.TrimEnd()
                };

[HttpGet] 
        public IQueryable<UserListDTO> GetUserList()
        {
            return db.Users.Select(AsUserListDTO).OrderBy(c => c.familyname);
        }



Он хочет исключать по _строковым_ значениям.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918837
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MonochromatiquecarrotikNechto,

... через Expression можно, создав предварительно класс нужной выборки ... вот примерно так (здесь таблица Users, а выборка только Id и ФИО в классе UserListDTO):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private static readonly Expression<Func<Users, UserListDTO>> AsUserListDTO =
            x => new UserListDTO
                {
                    serial = x.serial,
                    familyname = x.familyname.TrimEnd()
                };

[HttpGet] 
        public IQueryable<UserListDTO> GetUserList()
        {
            return db.Users.Select(AsUserListDTO).OrderBy(c => c.familyname);
        }


Он хочет исключать по _строковым_ значениям.

В том то и дело, если можно было просто класс использовать, то и проблемы бы не было.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918841
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoMonochromatiqueпропущено...

Он хочет исключать по _строковым_ значениям.

В том то и дело, если можно было просто класс использовать, то и проблемы бы не было.

Ты эти поля в рантайме определяешь что ли?
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918843
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto
В том то и дело, если можно было просто класс использовать, то и проблемы бы не было.

.. ну, если какие-то ограничения вероисповедальные, то всегда есть ExecuteStoreQuery, а там селект чо хошь куда хошь ..
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918872
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
carrotikNechtoВ том то и дело, если можно было просто класс использовать, то и проблемы бы не было.

.. ну, если какие-то ограничения вероисповедальные, то всегда есть ExecuteStoreQuery, а там селект чо хошь куда хошь ..

Им тоже пробовал. Не вышло:

var dsd = dbcontext.table.ExecuteStoreQuery<IEnumerable<object>>(select Id, Date from table).ToList();

Тоже не выходит, поскольку нужно использовать класс на выходе. А я не могу знать сколько полей выберет пользователь и в каком порядке.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918903
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoЗдравствуйте.

Подскажите пожалуйста как можно исключить свойства из запроса по их названию?

К примеру:
Код: c#
1.
2.
3.
entity.Table.ToList();
..имеет на выходе набор свойств
Id, Name, Date, Rem 



Как мне можно из этого готового набора исключить Name и Rem? по строковым названием этих полей 'Name' и 'Rem'?
Объясните зачем это необходимо? Оптимизации запроса или 'чистоты' объектов ради?
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918910
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ради отчета.
К примеру имеется таблица с полями.

Пользователь решил сформировать отчет по таблице, он в форме выбирает нужные ему поля из таблицы. Далее я по выбранным полям пользователя делаю запрос. Порядок выбранных полей нужно тоже учитывать.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918922
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,
Так EF тут не при чем - это не его задача. Надо выбирать все данные, а затем в бизнес-логике приложения выбирать нужные поля в нужном порядке - уж не знаю как Вы это планируете реализовать. А отчет в каком виде будет представлен?
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918950
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AxeleronNechto,
Так EF тут не при чем - это не его задача. Надо выбирать все данные, а затем в бизнес-логике приложения выбирать нужные поля в нужном порядке - уж не знаю как Вы это планируете реализовать. А отчет в каком виде будет представлен?

В Excel.

Я думал что можно подготовить это все в запросе, средствами ef.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918972
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoAxeleronNechto,
Так EF тут не при чем - это не его задача. Надо выбирать все данные, а затем в бизнес-логике приложения выбирать нужные поля в нужном порядке - уж не знаю как Вы это планируете реализовать. А отчет в каком виде будет представлен?

В Excel.

Я думал что можно подготовить это все в запросе, средствами ef.
Не получится. У вас же под отмапленной таблицей в модели находится класс с набором проперти - как Вы собираетесь эти проперти 'вертеть' (сортировать) в экземпляре класса? Задача EF в данном случае заключается только вернуть данные, а за сортировку, вывод или невывод определенных полей оттуда - это реализовать уже Ваша задача в бизнес логике приложения, а затем уже сделать экспорт данных в нужном Вам виде в Excel.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38918981
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,
А еще вариант получше - написать used defined function в базе, в которой строить и выполнять динамический запрос, а на выходе уже получать сразу CSV строку.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38919044
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoРади отчета.
К примеру имеется таблица с полями.

Пользователь решил сформировать отчет по таблице, он в форме выбирает нужные ему поля из таблицы.В каком виде таблица представлена на форме? Она уже содержит необходимые пользователю данные?
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38925820
Gluck_13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoРади отчета.
К примеру имеется таблица с полями.

Пользователь решил сформировать отчет по таблице, он в форме выбирает нужные ему поля из таблицы. Далее я по выбранным полям пользователя делаю запрос. Порядок выбранных полей нужно тоже учитывать.

Можно предложить 2 варианта:
1. Сгенерировать запрос на Entity SQL, выполнить его, вернуть пользователю результат в виде DataTable. Большинство построителей отчета .NET поддерживают работу с датасетами.
2. Создать динамический класс для результата в сборке RunAndCollect, вручную собрать LINQ Expression для запроса, выполнить его.

Мы выбрали второй вариант, с поддержкой динамических условий и выражений для колонок, задаваемых как графически, так и на DSL.
...
Рейтинг: 0 / 0
Исключить поля в запросе EF4
    #38925852
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за разъяснения!
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Исключить поля в запросе EF4
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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