Я не уверен, что это предполагаемое поведение, так как я не могу найти его документально зарегистрированным в MSDN, но это все еще кажется немного странным.SMO - PropertyNotSetException при доступе к свойствам таблицы
Я пишу программу, которая использует SMO. Ради тестирования. У меня в основном есть тестовая база данных, в которой есть таблица (структура неважная), которая имеет следующий триггер.
CREATE TRIGGER [dbo].[MyTableInsert] ON [dbo].[MyTable] AFTER INSERT
AS
BEGIN
PRINT 'after insert';
END
Сейчас в моем коде. Я ожидал использовать этот код, чтобы увидеть (и доказать), что таблица MyTable имеет триггер INSERT. Однако запуск этого кода вызывает PropertyNotSetException
.
var table = new Table(database, tableName.ToString());
Console.WriteLine(table.HasInsertTrigger); // Throws PropertyNotSetException
Но если я вызываю метод Refresh()
после инициализации таблицы. Вызов HasInsertTrigger
возвращает true как исключение.
var table = new Table(database, tableName.ToString());
table.Refresh();
Console.WriteLine(table.HasInsertTrigger); // Returns true.
Создание вызова Refresh
кажется ненужным, но это требуется, так как я не могу найти любую документацию, которая говорит, что это должна быть вызвана перед обращением каких-либо свойств.