2010-02-27 16 views
5

Piszę małe narzędzie do ładowania modeli danych jednostki z zespołu i kwerendy przeciwko nim.Połączyć się z modelem jednostki za pomocą refleksji

Próbowałem przy użyciu odbicia załadować pochodzący ObjectContext, ale ObjectContext nie wynika z MarshalByRefObject więc nie mogę przekazać parametry do konstruktora z Activator.CreateInstance() (według wyjątkiem dostaję.)

Czy możliwe jest załadowanie Modelu encji zdefiniowanego i przechowywanego w zewnętrznym złożeniu za pomocą Reflection, "późnego powiązania" z EDM i wykonania zapytań przeciwko niemu, jeśli podasz poprawny ciąg połączenia?

+0

nie można dodać klasę pomocnika do zespołów? –

+0

Wolałbym móc podłączyć do EDM w dowolnym zespole bez specjalnego przygotowania zespołu. –

Odpowiedz

5

wierzę ObjectContext.Metadataworkspace.LoadFromAssembly() jest co szukasz:

http://msdn.microsoft.com/en-us/library/bb495513.aspx

+0

To jest dokładnie to! Za pomocą kilku innych sztuczek refleksyjnych mogę połączyć się z zestawem z EDM, wskazać bazę danych i zapytanie bez wiedzy o obiektach w EDM! Dzięki! –

+0

Dzięki, czy tworzysz ogólne studio zarządzania EntityFramework czy coś takiego? – jfar

0

Model EDM, który pochodzi z ObjectContext, ma nazwę ConnectionString, która przechodzi do konstruktora podstawowego z własnego domyślnego konstruktora. Jak poniżej.

public const string ConnectionString = "name=My_Entities"; 
    public const string ContainerName = "My_Entities"; 

    #region Constructors 

    public My_Entities() 
     : base(ConnectionString, ContainerName) 
    { 
     Initialize(); 
    } 

    #endregion 

Zawsze możesz zmienić szczegóły połączeń poprzez ObjectContext.Connection.

+0

To jest konstruktor bez parametrów, ale wymaga wpisu pliku konfiguracyjnego o tej nazwie, zawierającego ciąg połączenia. Muszę być w stanie przekazać ciąg znaków lub gotowy do użycia EntityConnection, którego nie mogę użyć CreateInstance. –

Powiązane problemy