SMO - 访问 table 属性时出现 PropertyNotSetException

SMO - PropertyNotSetException when accessing table properties

我不确定这是否是预期的行为,因为我在 MSDN 上的任何地方都找不到它的记录,但这看起来还是有点奇怪。

我正在编写一个使用 SMO 的程序。为了测试。我基本上有一个测试数据库,里面有一个 table(结构不重要),它有以下触发器。

CREATE TRIGGER [dbo].[MyTableInsert] ON [dbo].[MyTable] AFTER INSERT
AS
BEGIN
    PRINT 'after insert';
END

现在在我的代码中。我希望使用此代码来查看(并证明)table 'MyTable' 具有 INSERT 触发器。但是 运行 该代码抛出 PropertyNotSetException.

var table = new Table(database, tableName.ToString());
Console.WriteLine(table.HasInsertTrigger); // Throws PropertyNotSetException

但是如果我在初始化 table 之后调用 Refresh() 方法。调用 HasInsertTrigger returns 例外。

var table = new Table(database, tableName.ToString());
table.Refresh();
Console.WriteLine(table.HasInsertTrigger); // Returns true.

调用 Refresh 似乎没有必要,但这是必需的吗,因为我找不到任何说明在访问任何属性之前需要调用它的文档。

我应该在一英里外看到这个...我正在创建表的新实例而不是访问现有的实例。