我可以在我的扩展方法中访问this对象吗?
到目前为止,这是我所拥有的:
void Main() {
IQueryable<DataContextTable> list = DataContextTables.First().NewMethod(this);
}
public static class ExtensionMethods {
public static IQueryable<DataContextTable> NewMethod(this DataContextTable table, TypedDataContext context) {
return context.DataContextTables.Where(item => item.SomeProperty == true).AsQqueryable();
}
}
如您所见,我仍然需要将 TypedDataContext 作为参数传递给我的扩展方法。我还有其他方法可以做到这一点吗?
最佳答案
我创建了一个 TypedDataSet 类型的静态成员,并在 Main() 函数中使用 this对其进行了“初始化”强>.
void Main() {
ExtensionMethods.Context = this;
IQueryable<DataContextTable> list = DataContextTables.First().NewMethod(this);
}
public static class ExtensionMethods {
public static TypedDataSet Context;
public static IQueryable<DataContextTable> NewMethod(this DataContextTable table) {
return Context.DataContextTables.Where(item => item.SomeProperty == true);
}
}
关于extension-methods - LINQPad 在扩展方法中访问内置 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612961/