实体框架 - 我的对象上下文? [英] Entity Framework - Where is my Object Context?

查看:113
本文介绍了实体框架 - 我的对象上下文?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,我很明显缺少一些非常基本的东西。我对Entity Framework非常新。



我想调用存储过程而不导入它们,所以我打算使用ExecuteStoreQuery()。根据文档,ExecuteStoreQuery是一个ObjectContext的方法。但是,我不知道从哪里获取我的ObjectContext。



我使用Database First生成了我的内容。到目前为止,我一直在访问我的实体:

  var db = new MyEntities(); 

PRODUCT p = db.PRODUCTS.First(a => a.PRODUCTSKEY == thekey);

但是我不能调用db.ExecuteStoreQuery,因为db不是ObjectContext。 >

我已经google了如何从一个实体获取ObjectContext。我找到一些答案,但他们都被提醒,说这是一个解决方法,只有使用它,如果你没有其他选择。好的,那么RIGHT的方式是什么?



我发现使用ExecuteStoreQuery的所有示例都假定您已经有了ObjectContext。不是很有帮助



我发现一个网站表示ObjectContext被Entity Framework自动生成。如果是这样,那么它在哪里?



我显然在这里遗漏了一些非常简单的东西。

解决方案

要获取DbContext的ObjectContext,您需要做的只是以下:

  var objectContext =((IObjectContextAdapter)myDbContextObject).ObjectContext; 


Ok, I'm obviously missing something very basic. I'm very new to Entity Framework.

I want to call stored procedures without importing them, so I was planning on using ExecuteStoreQuery(). According to the documentation, ExecuteStoreQuery is a method of ObjectContext. But, I have no idea where to get my ObjectContext.

I generated my entites using Database First. So far, I have been accessing my entities something like this:

var db = new MyEntities();

PRODUCT p = db.PRODUCTS.First(a => a.PRODUCTSKEY == thekey);

But I can't call db.ExecuteStoreQuery, becase db isn't an ObjectContext.

I've googled how to get ObjectContext from an entity. I find some answers, but they're all flagged with cautions, saying that it's a workaround, and only to use it if you have no other option. Ok, so what is the RIGHT way?

All examples that I've found for using ExecuteStoreQuery assume that you already have your ObjectContext. Not very helpful.

I found one website that stated that the ObjectContext is "automatically generated" by Entity Framework. If that's the case, then where is it?

I'm obviously missing something very simple here. This can't be that difficult.

解决方案

To get to the ObjectContext of your DbContext, all you'd need to do is the following:

var objectContext = ((IObjectContextAdapter)myDbContextObject).ObjectContext;

这篇关于实体框架 - 我的对象上下文?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆