У меня есть база данных с кучей справочных таблиц, таких как состояния, языки и т. д. Я хотел бы иметь возможность кэшировать эти таблицы, а затем использовать эти типы в любом ObjectContext, который я хочу. Итак, в псевдокоде я хочу сделать что-то вроде этого
var db1 = new PatientObjectContext();
Cache.CacheStates(db1.States.ToList())
var person = new Person { State = Cache.GetState("PA")} ;
var db2 = new PatientObjectContext();
db2.People.Add(person)
db2.SaveChanges();
Я видел это сообщение в блоге (https://blogs.msdn.microsoft.com/alexj/2009/04/22/tip-14-how-to-cache-entity-framework-reference-data/). Но это не относилось ко мне, потому что я думаю, что он не использует POCO. Когда я пытаюсь прикрепить кэшированный объект к objectContext, я получаю исключение, потому что объект с этим первичным ключом уже находится в этой коллекции состояний контекстов.
Кажется, что кеширование справочных таблиц должно быть довольно распространенной проблемой, но я не могу найти никаких прямых решений для этого.