LINQPad在扩展方法中访问内置DataContext

发布于 2024-11-18 17:02:43 字数 541 浏览 3 评论 0原文

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

Can I access the this object in my extension methods?

So far this is what I have:

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();
    }

}

as you can see I still need to pass the TypedDataContext as parameters to my extension methods. Is there any other way I can do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

渔村楼浪 2024-11-25 17:02:43

我创建了一个 TypedDataSet 类型的静态成员,并使用 thisMain() 函数中“初始化”它。

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);
    }

}

I created a static member of type TypedDataSet and "initialize" it in the Main() function with 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);
    }

}
笛声青案梦长安 2024-11-25 17:02:43

与 acermate433s 的答案类似,但在 LINQPad 4 中,我创建了一个 TypedDataContext 类型的静态成员:

void Main()
{
    MyExtensions.Context = this;
}

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

Similar to acermate433s' answer, but In LINQPad 4 I created a static member of type TypedDataContext:

void Main()
{
    MyExtensions.Context = this;
}

public static class MyExtensions
{
    public static TypedDataContext Context { get; set; }
    // your method here
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文