像 LinqPad 中一样直接引用 ObjectContext
我正在将一些代码从 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
LINQPad 通过子类化类型化的 ObjectContext 来实现这一点。如果您愿意,您可以在 VS 中执行相同的操作,尽管它最终可能会使您的类变得混乱,并且可以说是糟糕的设计,因为您不需要访问对象上下文的任何受保护成员。
如果您只想在 LINQPad 与 VS 中以一致的方式编写查询,则可以轻松地在 LINQPad 中创建等效变量,如下所示:
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: