Я использую Visual Studio 2017 с Smoll DLL
и пытается удалить файл из файлов базы данных с помощью следующей процедуры
public string RemoveFile(string fileName,string databaseName)
{
Server srv = new Server(servConn);
Database database = srv.Databases[databaseName];
if (database != null)
{
var file = LoadFiles(databaseName).Where(a => a.Name == fileName);
if (!file.Any())
{
SqlServerDisconnect();
return "File Doesn't Exist.kindly Enter Right File Name";
}
else
{
DataFile fileToRemove = file.FirstOrDefault();
database.FileGroups[fileToRemove.Parent.Name].Files.Remove(fileToRemove);
database.Alter();
return "File Removed Successfully";
}
}
}
Я не собираюсь упоминать код параметра servConn и SqlServerDisconnect для сокращения кода, который я использовал в других местах, и я уверен, что он работает хорошо.
Когда я удаляю файл, который берут его имя из логического имени одного из существующих файлов
RemoveFile("File1",MyDataBase")
Я получаю сообщение:
You cannot perform operation Remove on an object in state Existing
.
Как я могу обновить состояние файла перед его удалением, даже если поле состояния доступно только для чтения и мой способ удаления файла правильный?