Форум программистов, компьютерный форум, киберфорум
Наши страницы
LINQ
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
mirashke
0 / 0 / 1
Регистрация: 26.12.2014
Сообщений: 15
1

Простой запрос

01.09.2017, 22:01. Просмотров 902. Ответов 2
Метки нет (Все метки)

Подскажите плз, как из такой таблицы
id Ver Sub
---------
1 3.0 A
1 3.0 B
2 2.7 A
2 2.7 B
2 2.7 C
2 2.7 D
2 2.7 E

получить такую

id Ver Sub
---------
1 3.0 AB
2 2.7 ABCDE

с помощью linq
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2017, 22:01
Ответы с готовыми решениями:

Переписать SQL запрос в LINQ запрос
День добрый всем. Подскажите, пожалуйста, как можно преобразовать запрос: ...

Простой пример LINQ
Привет всем. У меня простой пример из книжки: using System; using...

Создание простой веб-формы.
Tolko nachala izuchat .NET, pitajus sozdat prostuju webformi, na kotoroi 1...

Простой метод, возвращающий массив шестиугольников
Здравствуйте. Помогите пожалуйста написать метод, который возвращает массив...

Простой бот для социальной сети Instagram
Ребят. Как сделать простого бота? Список задач, которые должен выполнять бот:...

2
Diamante
1312 / 1030 / 652
Регистрация: 14.08.2016
Сообщений: 3,578
Завершенные тесты: 1
02.09.2017, 22:15 2
а эта таблица именно таблица, в смысле datatable? или двумерный/ступенчатый массив или массив экземпляров класса/структуры с тремя полями?
0
mirashke
0 / 0 / 1
Регистрация: 26.12.2014
Сообщений: 15
03.09.2017, 08:34  [ТС] 3
Лучший ответ Сообщение было отмечено mirashke как решение

Решение

Добрый день, более подробно объясню суть проблемы и приведу свое решение.

есть два класса
C#
1
2
3
4
5
6
7
8
9
10
11
 public class Software
    {
        public int id { get; set; }
        public string Version { get; set; }
        public virtual ICollection<Subsystem> Subsystem { get; set; }
 
        public Software()
        {
            Subsystem = new List<Subsystem>();
        }
    }
и
C#
1
2
3
4
5
6
7
8
9
10
11
public class Subsystem
    {
        public int id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public virtual ICollection<Software> Software { get; set; }
        public Subsystem()
        {
            Software = new List<Software>();
        }
    }
с помощью EF создаются 3 таблице в бд Software, subsystems и таблица для реализации связи многие-ко многим SubsystemSoftwares
Таблица Subsystem - таблица справочник, т.е. статичная таблика и данные в ней врятли будут меняться.
Каждая запись в таблице Software может содержать в себе несколько подсистем
Subsystem
id Name Description
1 A УА
2 B Автозапуск
3 C Клиентов
4 L Syslog
5 U Update

Software
id Version
1 2.65
2 2.65

SubsystemSoftwares
Subsystem_id Software_id
4 1
5 1
1 2
2 2
3 2
4 2
5 2

Мне нужен вывод в виде

id Version Subsystems
1 2.65 ___LU
2 2.65 ABCLU

что мне удалось сделать)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
List<Software> soft = db.Software.ToList();
                foreach (Software s in soft)
                {
                    var q = db.Subsystem.Where(x => x.Software.Any(y => y.id == s.id)).Select(x => x);
                    string str = null;
                    int c = db.Subsystem.Count();
                    string[] f = new string[c];
                    foreach (var w in q)
                    {
                        f[w.id - 1] = w.Name;
 
 
                    }
 
                    for (int i = 0; i < c; i++)
                    {
                        if (f[i] == null)
                            f[i] = "_";
                        str = str + f[i];
 
                    }
 
                    Console.WriteLine("{0} {1} {2}", s.id, s.Version, str);
                }
так вот у меня вопрос, это нормальная реализация, или я написал костыль и есть решения проще и лаконичнее?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2017, 08:34

Простой запрос
Привет всем! есть две таблицы wp_cformssubmissions и wp_cformsdata. В...

Простой запрос
Есть БД общаги. Нужно вывести список комнат, где есть свободные места, с...

Простой запрос
Вопрос простой, как составить запрос не знаю. Дано ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru