powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / конвертация T-SQL в LINQ
3 сообщений из 3, страница 1 из 1
конвертация T-SQL в LINQ
    #38003592
Leax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

В SQL всё просто - написал куск кода и работает :)
Потребовалось разовое преобразование команды update в LINQ (C#) и сразу легкий ступор с выражением "update from".
Рабочий пример кода на SQL прилагаю. Подскажите, пожалуйста, как переписать на C# блок Update из примера.
Спасибо

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
declare @tbl table (n1 int, n2 int, stat varchar(10))

Insert Into @tbl (n1, n2) Values 
(1, 2),
(9, 4),
(9, 4),
(3, 5),
(9, 4),
(1, 7)

update t1 set stat = 'дубль'
	from @tbl t1
	join (
		select distinct n1, n2 from @tbl
			group by n1, n2
			having count(n1) > 1
	) t2
	on 
		t1.n1 = t2.n1 and t1.n2 = t2.n2

select * from @tbl
...
Рейтинг: 0 / 0
конвертация T-SQL в LINQ
    #38003825
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не судите строго - писано для развлечения (себя) :) Возможно, в случае Linq2Sql работать не будет...
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
/*
declare @tbl table (n1 int, n2 int, stat varchar(10))

Insert Into @tbl (n1, n2) Values 
(1, 2),
(9, 4),
(9, 4),
(3, 5),
(9, 4),
(1, 7)

update t1 set stat = 'дубль'
	from @tbl t1
	join (
		select distinct n1, n2 from @tbl
			group by n1, n2
			having count(n1) > 1
	) t2
	on 
		t1.n1 = t2.n1 and t1.n2 = t2.n2

select * from @tbl
*/

class item
{
	public int n1;
	public int n2;
	public string stat;
	public item (int n1, int n2)
	{
		this.n1 = n1;
		this.n2 = n2;
	}
}

void Main()
{
	var tb = new List<item>
	{
		new item(1, 2),
		new item(9, 4),
		new item(9, 4),
		new item(3, 5),
		new item(9, 4),
		new item(1, 7)
	};
	tb.Dump("Initial state");

	tb.ForEach(i => 
					i.stat = tb.GroupBy(itm => new {n1 = itm.n1, n2 = itm.n2 })
	  						   .Where(g => g.Count() > 1 )
							   .Where(d => (d.Key.n1 == i.n1) && (d.Key.n2 == i.n2)).Any()?"дубль":"нЭт");
	
	tb.Dump("After update");
}
...
Рейтинг: 0 / 0
конвертация T-SQL в LINQ
    #38005488
Leax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / конвертация T-SQL в LINQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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