Использование Entity Framework с историческими данными

Я создаю приложение Windows в .Net 4.0 для создания и организации проектов электроники. Основная цель приложения - записывать информацию о поставщиках компонентов электроники (номер детали, описание, цена и т. д.) и систематизировать (связать) их в проекты (готовые продукты). Одним из требований является отслеживание изменений для любого конкретного элемента поставщика (в основном цены) и изменений на уровне проекта, чтобы предоставить статистику на определенный момент времени как на уровне компонентов, так и на уровне проекта, детали для изменений.

Я решил использовать Entity Framework 4 для моего уровня доступа к данным с SQL CE 3.5 для базы данных, учитывая простоту клиентского развертывания.Доступ к данным работает отлично, но при попытке создать отношения (ассоциации) между объектами структура не имеет очевидного способа использования исторических данных. Это моя первая попытка использовать enti ty framework, поэтому я подумал, что, возможно, я не могу найти ответ из-за моей неопытности. Вот моя основная схема:

У меня есть 3 основные таблицы: Project, Product и ProjectProduct

Каждая из таблиц Project и Product имеет столбец ID и столбец DateAdded, которые используются как сложный ключ. Таблица ProjectProducts содержит идентификаторы для каждой из двух других таблиц и поддерживает отношения «многие ко многим» между сущностями. В таблице отношений также есть столбец DateAdded для отслеживания изменений в ассоциациях продукта / проекта.

Хотя Entity Framework, похоже, отлично работает с поддержанием прямых ассоциаций (без критериев даты) с использованием стандартных объектов данных, сгенерированных кодом, она немного сбивает с толку, как заставить его загружать ассоциации для схемы исторических данных на определенный момент времени. По сути, мне нужно иметь возможность загружать объекты данных на основе критериев даты для требований на определенный момент времени (параметризованная загрузка).

Кто-нибудь делал что-то подобное и может указать мне правильное направление?

Извините. за подробное объяснение, но заранее спасибо за любую помощь, которую вы можете предоставить!

12
задан Glen 6 July 2011 в 16:01
поделиться