Необходимо запустить с понимания, что LINQ является намеченной парадигмой Microsoft для запросов всех видов структурированных данных декларативно с одним инструментом - думают, "что Одно Кольцо Управляет Ими Всеми". LINQ к SQL является просто первым проявлением, реализованным для запросов реляционных баз данных.
На самом деле, Microsoft имеет смешанное сообщение об отношениях LINQ с SQL. Я думаю, что проблема состоит в том, что это стало понятым вместо других стратегий абстракции, и это теперь часто рассматривается как способ для программистов избежать потребности стать квалифицированным в SQL.
ADO.NET рассматривает ООП как, что это, и реляционные данные как, что это и ожидает, что Вы сделаете каждого правильно на его собственных условиях.
преимущества и недостатки этих двух открыты для дебатов. Но если Вы согласитесь, что мастера Информатики Microsoft придумали что-то вроде uber-абстракции для запросов структурированных данных, тогда Вы, вероятно, захотите переместиться в это направление. Существует некоторый признак, что другие поставщики программного продукта готовы манипулировать, таким образом, это даже не может закончить тем, что было полностью собственным, который был бы хорошей вещью.
Ввод "using" в верхней части файлов является способом Visual Studio по умолчанию. Однако рекомендуемый подход заключается в помещении операторов using внутри пространства имен. Даже stylecop от MS улавливает это и говорит, что использование VS по умолчанию неверно.
Оба метода работают нормально.
Правило StyleCop гласит: Размещение нескольких элементов пространства имен в одном файле обычно плохая идея, но если и когда это готово, рекомендуется разместить все директивы using внутри каждого из элементы пространства имен, а не глобально вверху файла. Эта будет ограничивать пространства имен плотно, и также поможет избежать поведение, описанное выше.
Важно отметить, что когда код был написан с использованием директив размещен вне пространства имен, забота следует принимать во внимание при перемещении этих директивы в пространстве имен, чтобы убедитесь, что это не меняет семантика кода. Как объяснено выше, разместив директивы using-alias внутри элемента пространства имен позволяет компилятор на выбор конфликтующие типы, которые будут не происходит, когда директивы размещены вне пространства имен.
Вот несколько ссылок для дальнейшего изучения:
-
Должно быть:
C:\prog\>scala Welcome to Scala version 2.7.5.final (Java HotSpot(TM) Client VM, Java 1.6.0_16). Type in expressions to have them evaluated. Type :help for more information. scala> val gu: Array[Byte] = Array(18, 19, 20) gu: Array[Byte] = Array(18, 19, 20)
Это не является неизменным. Seq будет шагом в этом направлении, даже если это всего лишь признак (как Кристофер упоминает в комментариях), добавляющий конечные последовательности элементов. Список Scala будет неизменным.
Работает в Scala 2.8.0:
Welcome to Scala version 2.8.0.r18502-b20090818020152 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_15).
Type in expressions to have them evaluated.
Type :help for more information.
scala> Array[Byte](0, 1, 2)
res0: Array[Byte] = Array(0, 1, 2)