2016-09-16 16 views
0

プロジェクト内でエンティティフレームワークを使用しており、テーブルに直接リンクされていない他のテーブルにアクセスしようとしています。これらのテーブルは、ほとんどがデフォルト値の設定テーブルです。 、それを行うことが可能に(そしてほとんどの場合、より効率的な)だった場合、私は思っていたが道をエンティティの親コンテキストへの参照を取得する方法

DAL.Models.MSSQL.GestionProjets.GestionProjets_DEVEntities entities = new DAL.Models.MSSQL.GestionProjets.GestionProjets_DEVEntities(); 

myProjet.ParentEntitiesのようなものを:私たちは、単純なこのようなものを使用して新しいエンティティ「コンテキスト」を作成することができます知っています(または他のいくつかのプロパティ)。

これについては何も見つかりません。

編集:私の質問は本当に明確ではないようです。この場合

Client (Id,Name,Address,SendMail) 
Contact (Id,IdClient,Name,etc...) 
DefaultConfig (DefaultSendMail,etc...) 

、顧客との接触がFKによってリンクされているので、私は簡単に クライアントCL = GetMyClientInSomeWay(0を行うことができ、 リストの連絡先= cl.Contact;

:私は以下の表を得たと仮定

または コンタクト共同= GetMyContactInSomeWay(); クライアントCL = co.Client;

が、私はこの クライアントCL = GetMyClientInSomeWay()のような何かを行うことができない方法で、 cl.SendMail = cl.DefaultCo nfig.SendMail;

これは私が最後に習得したいものです。私はすでに初期化されたDBContext(UIなど)で作業していて何かlileを実行しているときに何らかの方法で見つけることができます。 cl.SendMail = EntitiesContext.DefaultConfig.First()。SendMail;

などですが、オブジェクト自体(たとえば、エンティティの機能性を拡張する部分的なクラスなど)にいる場合、これを行うことはできません。少なくとも、どのようにすればよいかはわかりません。

ありがとうございました。

+0

linqクエリが好きですか? – BrunoMartinsPro

+0

なぜ、C#クラスでエンティティを作成しないで、依存する注入(単純注入器)でリポジトリパターンを設定し、linqですべてのテーブルにアクセスするのですか? – BrunoMartinsPro

+0

@ LightWalker、私はあなたが何を意味するのか分かりません。 –

答えて

0

いいえ、任意のエンティティからDbContextにアクセスすることはできません。エンティティは、「古い旧CLRオブジェクト」(POCO)として扱われることになっていますが、コンパイラに関する限りEntity Frameworkコンポーネントとは何の関係もありません。

によると、なぜエンティティを処理するときに無関係なテーブルにアクセスする必要があるかによって、さまざまな解決策が存在します。依存性注入、リポジトリパターン、あなたが望むものは何でも。

関連する問題