У меня есть проект уровня данных первого уровня кода, который создает библиотеку DLL с контекстом данных EF (скажем, MyContext). Внутри другого проекта в решении я могу создать этот контекст и использовать его.
Когда я пытаюсь использовать эту DLL из внешнего приложения (в моем случае LINQPad), я получаю сообщение «Текущая модель больше не соответствует моделииспользуется для предварительной генерации отображений ... ».
Затем я добавил код, который просматривает ObjectContext и проверяет этот хэш:
var _objectContext = ((IObjectContextAdapter)ctxCentral1).ObjectContext;
var mappingCollection = (StorageMappingItemCollection)_objectContext.MetadataWorkspace.GetItemCollection(DataSpace.CSSpace);
Debug.WriteLine($"Hash = {mappingCollection.ComputeMappingHashValue()}");
для обеих программ. Я заметил, что хеши, созданные внутри решения и во внешней программе, отличаются. Почему так? Я не смог найти алгоритм, как вычисляется этот хэш ...