Vb.net 不带Using语句的内联datacontext

Vb.net 不带Using语句的内联datacontext,vb.net,linq-to-sql,Vb.net,Linq To Sql,最好使用这一行: results = (From t In New MyDataContext().MyTable Select t ... 与此相反: Using context As New MyDataContext results = (From t In context.MyTable Select t... End Using 但是Dispose没有被调用。使用第一个方法有什么问题?Dispose将在GC着手处理时被调用。LINQ到SQL datacontext

最好使用这一行:

    results = (From t In New MyDataContext().MyTable Select t ... 
与此相反:

Using context As New MyDataContext
    results = (From t In context.MyTable Select t...
End Using

但是Dispose没有被调用。使用第一个方法有什么问题?

Dispose将在GC着手处理时被调用。LINQ到SQL datacontext将IIRC打开和关闭每个查询周围的连接。。所以应该不会有太大影响。第一种方法存在可维护性问题。使用第一种方法,上下文立即超出范围。这可能是一个问题,也可能不是,取决于您试图做什么。可维护性方面有什么问题?当GC着手解决时,我可以处理它。在这种情况下,我不再需要上下文,很高兴知道我可以将3行减为1行。