Я взял на себя веб-проект MVC, который использует EF6, шаблон репозитория, единицу работы.Я только начинаю изучать EF6.
Я хотел бы создать новую организацию и сохранить ее в базе данных, а затем получить новый идентификатор организации.Идентификатор новой организации будет использоваться для переименования файла изображения, который будет сохранен в organisation.logo.Затем обновите поле логотипа организации в базе данных, указав новое имя файла.
У меня есть сохранение организации, получение нового идентификатора организации, переименование файла, но я не могу обновить поле логотипа?
Код ниже:
Организационный контроллер - отображается базовый код. Я удалил много проверки и переименования файла изображения.
public ActionResult Create(OrganisationViewModel viewModelToCreate)
{
Organisation newOrganisation = new Organisation();
newOrganisation.Name = viewModelToCreate.Name;
newOrganisation.Logo = "To Change";
_Uow.OrganisationRepository.InsertOrUpdate(newOrganisation);
if (ModelState.IsValid)
{
_Uow.Save();
int newOrganisationId = _Uow.OrganisationRepository.LastInsertedID();
Organisation organisationToUpdate = _Uow.OrganisationRepository.Find(newOrganisationId);
string fileName = newOrganisationId.ToString() + Path.GetExtension(viewModelToCreate.FileNameToAdd.FileName);
organisationToUpdate.Logo = fileName;
_Uow.OrganisationRepository.InsertOrUpdate(organisationToUpdate);
_Uow.Save();
}
}
public virtual T InsertOrUpdate(T e)
{
DbSet<T> dbSet = Context.Set<T>();
DbEntityEntry<T> entry;
if (e.ID != default(int))
{
entry = Context.Entry(e);
}
else
{
T instance = dbSet.Create();
instance.ID = e.ID;
entry = Context.Entry(instance);
dbSet.Attach(instance);
entry.CurrentValues.SetValues(e);
e = instance;
}
entry.State = e.ID == default(int) ?
EntityState.Added :
EntityState.Modified;
return e;
}
int IUnitOfWork.Save()
{
return _Context.SaveChanges();
}
public int LastInsertedID()
{
Context = new aContext();
int newOrganisationId = Context.Organisations.OrderByDescending(x => x.ID).FirstOrDefault().ID;
return newOrganisationId;
}
Как обновить organisationToUpdate.Logo с помощью новогоимя файла, оно не сохраняется в базе данных?