Linq to sql Linq To Sql ClearCache()方法-是否可以调用?

Linq to sql Linq To Sql ClearCache()方法-是否可以调用?,linq-to-sql,Linq To Sql,我希望能够清除数据库上下文缓存,以便清除上下文当前正在跟踪的实体。上下文对象有一个ClearCache方法,但它是内部的。我编写了以下代码来调用此方法: private void ClearContextCache() { const BindingFlags FLAGS = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; var method = this.GetType().GetMe

我希望能够清除数据库上下文缓存,以便清除上下文当前正在跟踪的实体。上下文对象有一个ClearCache方法,但它是内部的。我编写了以下代码来调用此方法:

private void ClearContextCache()
{
    const BindingFlags FLAGS = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
    var method = this.GetType().GetMethod("ClearCache", FLAGS);
    method.Invoke(this, null);
}
这种方法效果很好。但我担心清除上下文缓存是否安全。我认为微软的L2S架构师不希望开发人员调用这种方法是有原因的。有人有这方面的经验吗


谢谢-Randy

我没有尝试你的方法,但是为什么不重新创建上下文呢?您是否了解性能?