Context不包含ExecuteStoreCommand的定义

时间:2013-03-04 16:01:02

标签: .net entity-framework entity-framework-4 entity-framework-5

我正在尝试使用context.ExecuteStoreCommand对我的数据模型执行查询,但我不断收到错误消息:

<object context> does not contain a definition for 'ExecuteStoreCommand' ...

我之前在一个旧项目中使用过这个,我看不出我错过了什么。我有EntityFramework,System.Data,System.Data.Entity的项目引用。 MSDN documentation表示ObjectContext是System.Data.Object的一部分,但我不能直接引用它,我不需要在之前使用它的地方引用它。我错过了什么?

1 个答案:

答案 0 :(得分:4)

回答我自己的问题:

我最初使用ExecuteStoreCommand的代码已经在EF4项目中,其中代码生成策略设置为“默认”,这导致创建ObjectContext。阅读here似乎VS2012上的EF5默认为数据模型创建了一个DbContext。

我找到了解决这个问题的两种方法。

1 - 通过更改代码生成策略,从DbContext更改为ObjectContext。 This question显示了如何做到这一点。然后可以使用<object context>.ExecuteStoreCommand()

2 - 对DbContext执行SQL命令,例如:

<db context>.Database.SqlQuery(typeof(myTable), "SELECT * FROM myTable")