Публикация

Модное использование Select

var contactIds = new List<Guid>();
var select = new Select(_userConnection).Distinct()
	.Column("SysAdminUnit", "ContactId")
	.From("SysAdminUnit").WithHints(Hints.NoLock)
	.Join(JoinType.Inner, "SysUserInRole").WithHints(Hints.NoLock)
		.On("SysAdminUnit", "Id").IsEqual("SysUserInRole", "SysUserId")
	.Where("SysUserInRole", "SysRoleId").IsEqual(Column.Parameter(roleId))
	.And("SysAdminUnit", "Active").IsEqual(Column.Parameter(true)) as Select;
 
select.ExecuteReader(dataReader =>
{
	contactIds.Add(dataReader.GetColumnValue<Guid>("ContactId"));
});

 

Нравится

Поделиться

5 комментариев

Если суть публикации в том, что можно коротко без using считать коллекцию, то есть еще более "модный" способ с помощью Linq.

var contactIds = select.ExecuteReader(dataReader => dataReader.GetColumnValue<Guid>("ContactId")).ToList();

 

Владислав Литвинчук пишет:
ExecuteReader

На методе ExecuteReader типа void, вызывать .ToList() - очень модноsmiley.

Тогда уж лучше так : 

select.ExecuteReader( reader => contactIds.AddRange( reader.GetAllColumnValues<Guid>( "ContactId" ) ) );

 

virimm,

Прошу прощения за опечатку. Метод ExecuteEnumerable

var contactIds = select.ExecuteEnumerable(dataReader => dataReader.GetColumnValue<Guid>("ContactId")).ToList();

 

Владислав Литвинчук,

Что-то новенькое yes. А это в какой версии приложения?

virimm пишет:

Владислав Литвинчук,

Что-то новенькое yes. А это в какой версии приложения?

Точно не скажу, но пользуюсь давно уже, с 715 точно. 

Показать все комментарии