У меня есть два ASP.NET MVC Projects (с одной и той же БД и Entity Framework DB-first), и теперь я хочу объединить их.
Первый проект A был создан в 2012 году, и на прошлой неделе я обновил его с MVC 4.0 до MVC 5.2.6 и с EF 4.4 до EF 6.2.Он тратит много времени на его обновление, и теперь он работает.
НО проект-A использует Устаревший контекст объекта в качестве Стратегии генерации кода в Entity Framework.Второй проект-B является новым и использует T4 .
. Поэтому я изменил Стратегию генерации кода проекта-A на T4 исоздал шаблоны генерации кода (... .tt Файлы) для моей модели.
Теперь у меня есть некоторые ошибки, кажется, что EF (T4) больше не использует методы ObjectContext .Как мне это удалось?Я попытался внести изменения в контроллеры проекта A (как в другом более новом проекте B), например, AddObject -> Добавить, DeleteObject -> Удалить :
Старый код:
if (PrGruppenExist.Count == 0) //Save
{
db.Pruefgruppen.AddObject(pruefgruppen);
int id = pruefgruppen.ID;
db.SaveChanges();
}
else //Edit
{
db.Pruefgruppen.Attach(pruefgruppen);
db.ObjectStateManager.ChangeObjectState(pruefgruppen, EntityState.Modified);
db.SaveChanges();
}
Новый код:
if (PrGruppenExist.Count == 0)
{
db.Pruefgruppen.Add(pruefgruppen);
db.SaveChanges();
}
}
else //Edit
{
db.Entry(pruefgruppen).State = EntityState.Modified;
db.SaveChanges();
}
Возможно, Entity Framework (T4) использует DbContext методов, и я должен заменить методы ObjectContext этим.
- Мои мысли верны?
- Как я могу управлять этими изменениями?Есть ли какой-нибудь Nuget-пакет, который может быть полезен?
- Если мне придется сделать это вручную, какие методы можно использовать для замены: AcceptAllChanges или Обновить
- У вас есть другие идеи, как я могу объединить два своих проекта в одно приложение?