Entity framework select() скрыть данные
я стараюсь выбрать все уникальные (истекшие даты) с различными() :
gridView3.Columns[0].FieldName = "pis_ExpireDate"; var EXdates = DB0201.purchases_item_seriels.Where(u => (u.stitems_ID == ItemID && u.ss_StoreID == StoreID && u.pis_Statues == 0) || (u.stitems_ID == ItemID && u.ss_StoreID == StoreID && u.pis_Statues == 5) || (u.stitems_ID == ItemID && u.ss_StoreID == StoreID && u.pis_Statues == 6)) .OrderBy(o => o.pis_ExpireDate).Select(u => u.pis_ExpireDate).Distinct(); gridControl3.DataSource = EXdates.ToList();
строки созданы, но данные не отображаются!!
Что я уже пробовал:
я попытался выбрать все данные без Выберите(u => u.pis_ExpireDate) , он работает
gridView3.Columns[0].FieldName = "pis_ExpireDate"; var EXdates = DB0201.purchases_item_seriels.Where(u => (u.stitems_ID == ItemID && u.ss_StoreID == StoreID && u.pis_Statues == 0) || (u.stitems_ID == ItemID && u.ss_StoreID == StoreID && u.pis_Statues == 5) || (u.stitems_ID == ItemID && u.ss_StoreID == StoreID && u.pis_Statues == 6)) .OrderBy(o => o.pis_ExpiraeDate); gridControl3.DataSource = EXdates.ToList();
создаются строки и появляются все данные но без слияния
F-ES Sitecore
С вашим первым запросом вы выбираете список из одного поля (pis_ExpireDate), так что это будет список любого типа (DateTime или что-то еще). Во втором запросе вы возвращаете список объектов purchases_item_serial. Я предполагаю, что вам действительно нужен список различных объектов purchases_item_serial, а не просто список дат. Обновите вопрос, чтобы предоставить образец ваших данных и желаемый результат.
Golden Basim
мне нужно показать только список истекших дат в Gridview , я использую эту строку для определения имени Поля первого столбца :
gridView3.Columns[0].Имяполя = "pis_ExpireDate";
F-ES Sitecore
Вы создаете список переменных DateTime, поэтому существует такая вещь, как поле под названием pis_ExpireDate, это просто свойство, из которого изначально исходили данные. Вам, вероятно, придется сделать что-то вроде этого;
Select(u => new { pis_ExpireDate = u.pis_ExpireDate })
это создаст список анонимных объектов со свойством pis_ExpireDate, так что ваш gridview сможет ссылаться на данные по имени свойства. Distinct может перестать работать, хотя, поскольку он не может определить, являются ли объекты различными, вам может потребоваться поискать в google, как вы можете сделать пользовательский Distinct для своих объектов.
Golden Basim
спасибо , он работает после смены на .Выберите(u => new { u.pis_ExpireDate }) спасибо
ZurdoDev
Пожалуйста, опубликуйте в качестве решения.
Richard Deeming
Вы могли бы упростить это Where
фильтруйте немного:
var EXdates = DB0201.purchases_item_seriels.Where(u => u.stitems_ID == ItemID && u.ss_StoreID == StoreID && (u.pis_Statues == 0 || u.pis_Statues == 5 || u.pis_Statues == 6)) ...
Или даже:
int[] expiredStatuses = { 0, 5, 6 }; var EXdates = DB0201.purchases_item_seriels.Where(u => u.stitems_ID == ItemID && u.ss_StoreID == StoreID && expiredStatuses.Contains(u.pis_Statues)) ...