Я пытаюсь написать запрос LINQ2Entity, который будет возвращать только 3 столбца из таблицы, а затем установить результат как DataSource
ComboBox
.LINQ to Entity - использование анонимного объекта в запросе
Проблема у меня есть это. Во-первых - выбрать все из таблицы я использую сервис так:
IList<SoleColor> soles = SoleColorService.All().ToList();
который готов быть установлен в качестве DataSource для ComboBox, который ожидает данные этого типа. Однако, потому что я хочу, чтобы выбрать анонимный объект для хранения только 3 из столбцов, результат запроса я изменил мой запрос, как это:
IList<SoleColor> soles = SoleColorService.All()
.GroupBy(t => t.Sole.Code)
.Select(g => new
{
SoleCode = g.Key,
SoleName = g.Select(t => t.Sole.Name),
SoleId = g.Select(t => t.SoleID)
});
что приводит к случаю .Select
как ошибка с текстом «Не удается неявно преобразовать тип System.Linq.IQueryable для System.Collections.Generic.IList ". Если я изменю IList<SoleColor> soles =
на var soles =
, это нормально, но тогда есть проблема с назначением анонимного типа, такого как DataSource, но я думаю, что это может быть исправлено в запросе, поэтому я получаю правильный тип там. Также в какой-то момент я должен добавить что-то вроде First()
или FirstOrDafult()
к запросу y, потому что у меня много записей с тем же SoleCode
, и я хочу сохранить только один для каждого уникального SoleCode
.
Спасибо. Из-за проблемы с производительностью мне пришлось изменить код вчера. Он должен загружать форму быстрее, если в 'Select' есть только 3 свойства или, по крайней мере, именно поэтому я делаю эту модификацию. Для уникальных записей - я пытался поставить 'First()' в самом конце запроса, так что очевидно, что это была моя ошибка, не знала для этой опции '.Select (g => g.First())' , Это мой второй день работы с LINQ2Entities или LINQ2SQL, поэтому я надеюсь, что вы извините мое незнание - о типе - DataSource назначается настраиваемым методом, который ожидает определенный тип, поэтому мне это нужно. – Leron
@Leron: Итак, это ответ на ваши вопросы или что-то еще неясно? BTW: выбор одного из трех столбцов, скорее всего, не повлияет на вашу производительность, если только у SoleColor не будет огромного количества столбцов или столбцов с огромным количеством данных. –
Извините, я пытался прочитать то, что вы прочитали. Я принял ваш ответ. Я тоже не уверен в производительности, но это моя задача, поэтому ... по крайней мере, я надеюсь научиться работать с Linq2Entities.Thanks – Leron