Каковы лучшие практики при форматировании встроенного sql использование ADO.NET в C#

Да. В .NET есть два типа типов: ссылочные типы и типы значений.

Типы ссылок (обычно классы) всегда упоминаются ссылками, поэтому они поддерживают null без какой-либо дополнительной работы. Это означает, что если тип переменной является ссылочным типом, переменная автоматически становится ссылкой.

Типы значений (например, int) по умолчанию не имеют понятия нуля. Тем не менее, есть обертка для них под названием Nullable. Это позволяет вам инкапсулировать ненулевой тип значения и включать нулевую информацию.

Использование немного отличается, хотя.

// Both of these types mean the same thing, the ? is just C# shorthand.
private void Example(int? arg1, Nullable<int> arg2)
{
    if (arg1.HasValue)
        DoSomething();

    arg1 = null; // Valid.
    arg1 = 123;  // Also valid.

    DoSomethingWithInt(arg1); // NOT valid!
    DoSomethingWithInt(arg1.Value); // Valid.
}
7
задан Dan 24 May 2010 в 10:21
поделиться

2 ответа

Встроенный (с или без литерала @ "..." синтаксис) подходит для коротких запросов ... но для более длинных рассмотрите возможность использования tsql в качестве файла в проекте; либо как встроенные ресурсы / resx, либо как плоские файлы. Конечно, на этом этапе вам, вероятно, все равно следует сделать ее хранимой процедурой ;-p

Но, имея ее как отдельный файл, вынуждает такое же разделение, которое позволит легко превратить ее в хранимую процедуру позже (возможно, просто добавив CREATE PROC и т. Д.).

Одна проблема с inline - из-за этого возникает соблазн объединить пользовательский ввод ... что, очевидно, плохо (вы правильно использовали параметры в примере).

8
ответ дан 7 December 2019 в 01:25
поделиться

Я использовал файлы ресурсов .NET в прошлом. Они были удобны для хранения библиотеки всех запросов, используемых в конкретной библиотеке кода, особенно когда один и тот же запрос мог использоваться в нескольких местах (да, я понимаю, что это также указывает на плохой дизайн, но иногда вам нужно работать в рамках данного поля вам).

2
ответ дан 7 December 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: