[英]What is the equivalent of LINQ-to-SQL's ExecuteCommand in Entity Framework?
我正在将运行在LINQ-to-SQL上的应用程序移植到Entity Framework ,并且无法找到与ExecuteCommand等效的内容:
db.ExecuteCommand("INSERT Infos (Title) VALUES ('this is an added title')");
我发现这个站点告诉我可以在ObjectContext上实现ExecuteCommand作为扩展方法 ,通过将此代码添加到项目中的静态方法来保持现有代码不变:
public static int ExecuteCommand(this ObjectContext objectContext,
string command) {
DbConnection connection = ((EntityConnection)objectContext.Connection).StoreConnection;
bool opening = (connection.State == ConnectionState.Closed);
if (opening)
connection.Open();
DbCommand cmd = connection.CreateCommand();
cmd.CommandText = command;
cmd.CommandType = CommandType.StoredProcedure;
try {
return cmd.ExecuteNonQuery();
}
finally {
if (opening && connection.State == ConnectionState.Open)
connection.Close();
}
}
但我已经尝试将它(1)放在我使用它的类中,(2)在Entity生成的类文件中,(3)在项目中的静态类中,但总是会得到各种错误。 我在哪里需要准确地使用这种方法?
上述网站还称:
ExecuteCommand被视为对Entity Framework未来版本的增强
ExecuteCommand()是否存在于最新版本的Entity Framework中? 我正在使用随Visual Studio 2008 SP1一起安装的实体框架。
.NET Framework 4的ObjectContext类具有ExecuteStoreCommand和ExecuteStoreQuery方法,这些方法似乎正是您所寻找的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.