У меня проблема с тем, что Entity Framework не сохраняет изменения в БД.Я использую статический метод для загрузки некоторых значений, и контекст Entity отбрасывается (в операторе using).
Затем объекты загружаются в сетку данных WPF, где они могут управляться конечным пользователем.
Когда пользователь заканчивает вносить изменения, нажимается кнопка «обновить», и список объектов отправляется обратно на уровень данных для сохранения в БД.Я вижу, что объекты, которые были изменены в пользовательском интерфейсе, отражают их новое значение (т. Е. Не проблема привязки данных).
Я бы предположил, поскольку контекст сущности, который загрузил объекты, был удален, я должен затем присоединить этиобъекты должны быть сохранены во вновь созданном контексте.Правильный?Когда я делаю это, состояние объекта измененного объекта (я вижу, что это состояние установлено) изменяется на «Неизменен».В БД ничего не сохраняется.
Какого черта я пропускаю?!
Вот код для загрузки и обновления значений:
public static List<SSIS_Configuration> GetConfigurationValuesForTenant(string tenantKey, SqlConnectionString connectionString)
{
List<SSIS_Configuration> configStrings = new List<SSIS_Configuration>();
if (connectionString.IsValid())
{
try
{
using (SSISFrameworkEntities entities = new SSISFrameworkEntities(connectionString.ToEDMXString("SSISFramework.SSISFramework")))
{
string configFilterStartingValue = "CommonConfig_" + tenantKey;
configStrings = (from configString in entities.SSIS_Configurations
where configString.ConfigurationFilter.StartsWith(configFilterStartingValue)
select configString).ToList();
}
}
catch { }
}
return configStrings;
}
public static void UpdateConfigurations(List<SSIS_Configuration> configurations, SqlConnectionString connectionString)
{
if (connectionString.IsValid())
{
try
{
using (SSISFrameworkEntities entities = new SSISFrameworkEntities(connectionString.ToEDMXString("SSISFramework.SSISFramework")))
{
foreach (SSIS_Configuration config in configurations)
{
entities.Attach(config);
}
entities.SaveChanges();
}
}
catch { }
}
}