Я портирую приложение, работающее в LINQ-to-SQL, на Entity Framework , и мне не удается найти эквивалент ExecuteCommand :
db.ExecuteCommand("INSERT Infos (Title) VALUES ('this is an added title')");
Я нашел этот сайт , который сообщает мне, что возможно реализовать ExecuteCommand как метод расширения в вашем ObjectContext, оставив существующий код без изменений, добавив этот код статический метод в вашем проекте:
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? Я использую Entity Framework, установленную с Visual Studio 2008 SP1.