0

如果我在 EntityDataSource 的 Inserted 事件期间对插入的值做某事,我应该包装e.Entity在一个using()语句中吗?我说不出来。那是“在上下文中”吗?

应该是(正如我在其他示例中看到的那样):

myEntity NewRecord = (myEntity)e.Entity;
myVar = NewRecord.DataValue;

或者是适当的做法:

using (myEntity NewRecord = new e.Entity())
{
    myVar = NewRecord.DataValue;
}

(不要认为语法是完全正确的。不想仅仅为了询问而查找它是如何工作的。)

从 MSDN 文档中,我只能收集到 e.Entity 是一个对象,它是……实体。有帮助。那么它是否打开了一个新的连接以及我假设一个新实体需要的整个包的其余部分?

4

2 回答 2

0

一般来说,我会说是的。最佳实践?是肯定的。但是,答案更像是“视情况而定”。作为一项规则,任何时候你使用一个实现了一个对象的对象IDisposable都应该将它包装在一个 using 语句中,除非你打算在方法调用之间保留该对象。

在我倾向于生活的无状态 Web 世界 (MVC) 中,我尝试将我的内容包装DbContext在 using 语句中。在 Winforms/WPF 中,我确信有理由坚持到某些事件发生。这些应该是规则的例外。

于 2013-05-14T18:24:00.533 回答
0

当您想确保在程序执行离开 using 范围时调用 Dispose 方法时,使用 Using。

例如,假设您的代码可能会引发异常,并且您想确保它仍然调用 Dispose()。using 语句将保证它。

因此,如果 myEntity 实现了 iDisposable 你会想要使用 using 语句。如果不是,您将不需要,但仍然可以,我认为...大声笑。

于 2013-05-14T18:24:35.113 回答