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

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

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


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

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

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


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

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

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

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

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

     .ToList(); 



Да понятно, чего вы хотите. То что вы хотите - ПЛОХО.
Да еще и по строковым значениям.
...
Рейтинг: 0 / 0
27.03.2015, 11:34
    #38918715
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключить поля в запросе EF4
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
27.03.2015, 11:35
    #38918726
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключить поля в запросе EF4
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
27.03.2015, 12:13
    #38918837
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключить поля в запросе EF4
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
27.03.2015, 12:16
    #38918841
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключить поля в запросе EF4
NechtoMonochromatiqueпропущено...

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

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

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

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

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

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

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

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

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

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



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

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

В Excel.

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

В Excel.

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

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

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

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

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


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