LINQPad访问内置DataContext的扩展方法

3

我能在扩展方法中访问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作为参数传递给我的扩展方法。是否有其他方法可以做到这一点?

2个回答

3

我创建了一个静态成员,类型为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);
    }

}

1
类似于acermate433s的回答,在LINQPad 4中我创建了一个类型为TypedDataContext的静态成员:
void Main()
{
    MyExtensions.Context = this;
}

public static class MyExtensions
{
    public static TypedDataContext Context { get; set; }
    // your method here
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接