powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Запрос
2 сообщений из 2, страница 1 из 1
Запрос
    #35754949
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две табл GOOD(Товары) и CATEGORIES_GOOD(Категории товаров) связанные между собой многие ко многим в табл GOODS_AND_CATEGORIES при выборки данных мне необходимо что бы в поле COTEGORY попали все категории через запятую текущего товара
пробовал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
            var goods = from g in db.GOODs 
                        select new
                        {
                            g.ID,
                            g.SKU,
                            g.HAVE,
                            g.PRICE1,
                            g.PRICE2,
                            PRODUCER_NAME = g.NAME,
                            category = g.GOODS_AND_CATEGORies.SingleOrDefault(t => t.GOOD_ID == g.ID).CATEGORIES_GOOD.ToList<CATEGORIES_GOOD>(),
                            COTEGORY = ""
                        };
            foreach (var t in goods)
            {
                foreach (var p in t.category)
                {
                    t.COTEGORY += p.NAME+", ";
                }
            }
            GoodsGrid.DataSource = goods;

но так не работает да и решение помоему немного неверное... может можно написать вложенный запрос результат которого присвоить полю category
т.е. так
...............
PRODUCER_NAME = g.NAME,
category = <Запрос>
..........
Спасибо
...
Рейтинг: 0 / 0
Запрос
    #35758756
Dim@sty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если SQL Server

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE FUNCTION [StringSummary](@column int, @ConcatenatingColumn varchar) 
RETURNS VARCHAR(8000)
AS
BEGIN
	DECLARE @StringFinal VARCHAR(8000)
	SET @StringFinal = ''	
	IF(@ConcatenatingColumn='SomeColumn') 			
		SELECT @StringFinal = ISNULL(SomeColumn,'-') + '/' + @StringFinal FROM SomeTable
		WHERE PrimaryKeyColumn = @column			
	SET @StringFinal = SUBSTRING(@StringFinal, 1, LEN(@StringFinal)-1)	
	RETURN @StringFinal
END

Использовать можно так

Код: plaintext
1.
SELECT     EmployeID, FIO, DeportamentID, StringSummary(EmployeID, 'Harmfulness') AS Harmfulness FROM  GroupingHarmfulness
GROUP BY EmployeID, FIO, DeportamentID

В результирующей таблице колонка Harmfulness будет содержать строку с соответствующими записями, разделенными через '/'. Null значения будут изменены на '-'

C/У Dimasty
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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