Я использую Entity Framework 5 с использованием подхода Code First и используя конфигурацию Fluent API для Entity. Мой проект имеет один конкретный объект продукта, который получает половину своих данных из базы данных, а другую половину - из Контракта данных, полученного через WCF-клиент (его сторонняя система, используемая для управления инвентаризацией продукта). Контракт данных является членом класса Product Entity (свойство или метод, который я еще не решил).
Я предпочитаю не иметь никакой логики WCF-клиента внутри Entities. Я бы предпочел сохранить эту логику в коде репозитория (DbContext, DbSet и т.д.).
Итак, существует ли метод для привязки к Entity Framework (или перехвату) сразу после того, как объект продукта извлекается из базы данных? Я должен отметить, что Product Entity отображается как свойство навигации для других объектов. Если возможен захват или перехват, то это означает, что я могу получить Контракт данных из службы SOAP сразу же после того, как EF загрузила Product Entity из базы данных. Преимущество моего проекта в том, что код поиска клиента WCF не обязательно должен повторяться во всем приложении.
Одна из моих идей заключалась в том, чтобы реализовать IDbSet для Контракта данных, и IDbSet будет отвечать за его получение. И тогда каким-то образом обманите EF, чтобы думать о его навигационной собственности в Product Entity. Но я не был уверен, что базу данных DbSet можно смешивать с IDbSet без базы данных в одном и том же DbContext. А также другой вопрос - как бы EF знал, чтобы получить свойство навигации из имплантации IDbSet? Я предпочел бы знать, возможна ли эта идея, прежде чем инвестировать в нее время. Я также предпочел бы знать, с чего начать искать.
Обратите внимание, что я работаю с .NET более 10 лет, но этот материал EF5 по-прежнему относительно нов для меня.
Спасибо заранее.
-Sam