У меня есть база данных с кучей справочных таблиц, таких как «Состояния», «Языки» и т. Д. Я хотел бы иметь возможность кэшировать эти таблицы и затем использовать эти типы в любом 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();
Я видел этот пост в блоге (http://blogs.msdn.com/b/alexj/archive/2009/04/22/tip-14-caching-entity-framework-reference-data.aspx). Но это не относится ко мне, потому что я думаю, что он не использует POCO. Когда я пытаюсь прикрепить кешированный объект к objectContext, я получаю исключение, потому что объект с этим первичным ключом уже находится в этой коллекции состояний контекстов.
Кажется, что кеширование справочных таблиц должно быть довольно распространенной проблемой, но я не могу найти какие-либо прямые решения для этого.