Если вам нужна скорость, учитывая, что ваши целые числа имеют конечный размер, я подозреваю, что самый быстрый способ заключался бы в (а) разбиении параметров по размеру (например, на категории по величине набора битов), а затем проверке значения по массиву идеальных квадратов в этом диапазоне.
Использование:
MyDataClassesDataContext db = new MyDataClassesDataContext(dynamicConnString);
Для LinqDataSource перехватите событие ContextCreating и создайте DataContext вручную, как указано выше:
protected void LinqDataSource_ContextCreating(object sender, LinqDataSourceContextEventArgs e)
{
e.ObjectInstance = new MyDataClassesDataContext (dynamicConnString);
}
Из MSDN :
По умолчанию Элемент управления LinqDataSource создает экземпляр типа, который указывается в ContextTypeName свойство. Элемент управления LinqDataSource вызывает конструктор по умолчанию для объект контекста данных для создания экземпляр объекта. Возможно что вы должны использовать нестандартный конструктор или вам нужно создать объект, который отличается от одного указанный в ContextTypeName свойство. В этом случае вы должны обрабатывать событие ContextCreating и вручную создать контекст данных объект.
Если вы не хотите добавлять прослушиватель событий на каждую страницу, вы можете перейти по этой ссылке http://goneale.com/2009/03/26/untie-linq-to-sql-connection-string-from-application-settings/
Класс DataContext имеет конструктор , который принимает строку подключения .