powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / select * на LINQ
13 сообщений из 13, страница 1 из 1
select * на LINQ
    #36386689
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос:

как выполнить запрос select * на LINQ

ObjectQuery<table> q = s.table;
var q =
from table in q
where table.field == "value"
select new
{
// чтобы не указывать каждое поле а выполнить а-ля select *
};

????
...
Рейтинг: 0 / 0
select * на LINQ
    #36386754
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Robb,

А зачем тогда select new ?
Код: plaintext
1.
2.
3.
4.
5.
ObjectQuery<table> q = s.table;
var q = 
from table in q
where table.field == "value"
select table;
не проще. (по вашему примеру).
...
Рейтинг: 0 / 0
select * на LINQ
    #36386847
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е.
select table как бы и есть * ???

просто я не совсем еще в этом LINQ ориентируюсь (как-то напрягает меня он :)) на SQL привык.
...
Рейтинг: 0 / 0
select * на LINQ
    #36386951
Фотография gds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Robbт.е.
select table как бы и есть * ???

просто я не совсем еще в этом LINQ ориентируюсь (как-то напрягает меня он :)) на SQL привык.
я тож по началу плевался, потом почитал и вкурил. Нормальная тема.
а вообще select new нужет только если надо выбрать что то отдельное из коллекции или создать колекцию классов и использовать дальше. че нить в таком духе.
класс-обертка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
sealed class ItemData
{
public int Key{get;set;}
public object Value{get;set;}
public ItemData(int key,object value
{
this.Key = key;
this.Value=value;
}
}

запись
Код: plaintext
1.
2.
3.
4.
using(DataContext dc = new DataContext()){
MyComboBox.DataSource = dc.Table.Where(t=>t.group==1).Select(t=>new ItemData(t.ID,t.Name));
MyComboBox.DisplayName="Value";
}
чтение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DataItem di = (DataItem)MyComboBox.SelectedItem;
if(di != null)
{
... di.Key;
... di.Value;

di.Key = ...;
di.Value = ...;
}
И все нормально.

Вот только не знаю есть ли смысл Where потом Select или наоборот Select потом Where? Если кто из гуру объяснил был бы признателен.
Если есть то соответственно при Where Select я так понимаю все делается на сервере а при Select Where селект делается на сервере а условия отбираются локально. Хотя не вдавался в подробности.

сам учил linq только по одной главе из книги ASP NET 3.5 на C# 2008 Silverligth 2.0 AJAX там есть одна глава кажется #13

Если у тебя в dataContext класс состоит из ID и Name то класс обертку можно опустить а приобразовывать соответсвенно к классу dataContext
Допусти таблица называется people и поля ID и Name
Код: plaintext
1.
2.
3.
4.
using(DataContext dc = new DataContext()){
MyComboBox.DataSource = dc.Peoples.Where(t=>t.group==1).Select(t=>t);
MyComboBox.DisplayName="ID";
}
например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DataItem di = (People)MyComboBox.SelectedItem;
if(di != null)
{
... di.ID;
... di.Name;

di.ID = ...;
di.Name = ...;
}
...
Рейтинг: 0 / 0
select * на LINQ
    #36387035
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gds
я тож по началу плевался, потом почитал и вкурил.

меня аж колбасит..
...
Рейтинг: 0 / 0
select * на LINQ
    #36387798
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gds
Вот только не знаю есть ли смысл Where потом Select или наоборот Select потом Where? Если кто из гуру объяснил был бы признателен.
Если есть то соответственно при Where Select я так понимаю все делается на сервере а при Select Where селект делается на сервере а условия отбираются локально. Хотя не вдавался в подробности.

Действительно каша..
Select это операция шейпинга, т.е. преобразования данных из одного типа в другой.
Where это операция фильтрации, ограничение выборки.
Если шейпинг не нужен, то Select использовать не нужно, т.к. это будет просто лишний вызов (не путать с синтаксическим сахаром from x in y .... select x, тут select в конце является терминатором конструкции и его необходимо указывать, даже если преобразования нет).

Код: plaintext
1.
MyComboBox.DataSource = dc.Peoples.Where(t=>t.group==1).Select(t=>t);
-->
Код: plaintext
1.
MyComboBox.DataSource = dc.Peoples.Where(t=>t.group==1);

или если нужен оффлайновый набор данных, то в конце вызвать ToList() или ToArray().
...
Рейтинг: 0 / 0
select * на LINQ
    #36387999
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще один термин - шейпинг.. что это, обертка что ли.

мне как то видится что в .НЕТ самое навороченное не технологии а терминология и вечно меняющийся синтаксис, повторяющий тоже самое, но с другими закорючками.
...
Рейтинг: 0 / 0
select * на LINQ
    #36388002
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще мне нравится "синтаксический сахар" - вот уж млин, пафосные речи...

попроще можно, без литературных излишеств?
...
Рейтинг: 0 / 0
select * на LINQ
    #36388016
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gds
я тож по началу плевался, потом почитал и вкурил. Нормальная тема.

gds,

дай мне немного трэшануть..

объясни плиз, вот все эти навороты с LINQ - какой смысл все это знать, тратить время, чтобы потом забыть SQL?

Ну вот если там разные базы, а программа одна, в ней все на ЛИНКе и потом подключать разные базы, ну понятно..
Вот я смотрю на перспективу, все эти пируэты с ЛИНК - вымрет ведь, ж... чую.. останется сервер с SQL и нормальные программные читалки запросов с сервера..

На этом ЛИНК можно написать и так и эдак, понапишет один чел мне запросов в коде, с использованием "сахаров и уксусов", а потом разбирай как это все модифицировать.

На SQL написано однажды, работает, читать умеешь - вперед..

Мне EF в принципе нравится, так удобнее конечно, ну а чем DataSet не нравился, т.е. разработчики предлагают забить на DataSet что-ли?

Ведь вот смотри, вюхи не работают, там процедуры и функции базы глючат, какой реально серьезный проект можно положить на EF в нынешнем исполнении?
...
Рейтинг: 0 / 0
select * на LINQ
    #36388024
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Robbтам процедуры и функции базы глючат
Робби, я не говорил глючат . ;)
Ты безнадёжно отстал от жизни.
...
Рейтинг: 0 / 0
select * на LINQ
    #36388079
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredRobbтам процедуры и функции базы глючат
Робби, я не говорил глючат . ;)
Ты безнадёжно отстал от жизни.

работал в одном иностранном банке. там народ пишет на SQL и Cobol - топ банк в Еврозоне.

всякие мелкософтовские приблуды у тамошних вызывают стойкое отвращение.

и софт у них работает прекрасно и ЛИНК им как собаке пятая )))

однако.. по теме.. вот вьюха не "всасывается" в EF, что с этим делать?
...
Рейтинг: 0 / 0
select * на LINQ
    #36388175
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Robb,

Вся документация написана с использованием этих терминов, так что прежде всего иди читать их описание. Только первый раз и только для тебя поясню первые два термина:

шейпинг (shaping) - собственно как должно быть понятно из название, придание чему-то некой формы. В данном конкретном случае - придание новой формы данным из источника данных, т.е., расшифровываю дальше, преобразование данных в новый тип (query.Select(p=>new { ... });)

синтаксический сахар (syntactic sugar) - конструкция языка, заменяющая другую, сделаная для облегчения чтения кода, или чтобы сделать некоторые вещи проще (например, оператор yield).
...
Рейтинг: 0 / 0
select * на LINQ
    #36388196
Фотография Robb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

спасибо за перевод - у меня свободный инглиш кстати..

этот "сахар" скорее как ""синтаксический уксус".

спасибо за разъяснения, теперь хоть смогу наконец прочитать документацию.

хотя не думаю что от знания таковых (спасибо тебе) у меня появится объяснение - "почему не генерится КОД для вьюшки".
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / select * на LINQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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