2015-07-03 2 views
0

Я не уверен, что это предполагаемое поведение, так как я не могу найти его документально зарегистрированным в 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 кажется ненужным, но это требуется, так как я не могу найти любую документацию, которая говорит, что это должна быть вызвана перед обращением каких-либо свойств.

ответ

0

Я должен был видеть это в миле от меня ... Я создавал новые экземпляры таблиц, а не обращался к уже существующим.