像 LinqPad 中一样直接引用 ObjectContext

发布于 2024-12-11 10:07:55 字数 439 浏览 0 评论 0原文

我正在将一些代码从 LinqPad 移动到常规 C# VS2010 环境。

我注意到,在 LinqPad 中,您可以直接使用 ObjectContext(即使用复数表名称),而在我的常规 (VS2010) C# 代码中,我需要首先实例化 ObjectContext。

更清楚地说,假设我有一个名为“类别”的表。为了获得计数,我可以在 LinqPad 中执行以下操作:

int i = Categories.Count();

但在我自己的程序中,我必须这样做:

MyEntities dc = new MyEntities();
int i = dc.Categories.Count();

如何在我自己的程序中实现额外的便利?我觉得我缺少一些基本的东西......

感谢您的帮助!

I'm in the process of moving some code from LinqPad to a regular C# VS2010 environment.

I noticed that in LinqPad, you can just directly use an ObjectContext (i.e. using the pluralized table name) whereas in my regular (VS2010) C# code I need to instantiate the ObjectContext first.

To be clearer, say if I have a table called "Categories". To get the count, I can just do the following in LinqPad:

int i = Categories.Count();

But in my own program, I have to do this:

MyEntities dc = new MyEntities();
int i = dc.Categories.Count();

How can I achieve that extra convenience in my own program? I feel like I'm missing some fundamental stuff...

Thanks for the help!

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

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

发布评论

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

评论(1

剧终人散尽 2024-12-18 10:07:55

LINQPad 通过子类化类型化的 ObjectContext 来实现这一点。如果您愿意,您可以在 VS 中执行相同的操作,尽管它最终可能会使您的类变得混乱,并且可以说是糟糕的设计,因为您不需要访问对象上下文的任何受保护成员。

如果您只想在 LINQPad 与 VS 中以一致的方式编写查询,则可以轻松地在 LINQPad 中创建等效变量,如下所示:

var db = this;
int i = db.Categories.Count();

LINQPad achieves this by subclassing your typed ObjectContext. You could do the same in VS if you wanted, although it could end up cluttering your class and is arguably bad design because you don't need access to any of the protected members of the object context.

If you just want a consistent means of writing your queries in LINQPad vs VS, you can easily create an equivalent variable in LINQPad as follows:

var db = this;
int i = db.Categories.Count();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文