2016-09-16 68 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聯繫,所以我可以輕鬆地做 客戶端C1 = GetMyClientInSomeWay(0; 列表中的聯繫人= cl.Contact;

或 聯繫CO = GetMyContactInSomeWay(); 客戶端C1 = co.Client;

,但沒有辦法,我可以做這樣的事情 客戶端C1 = GetMyClientInSomeWay(); cl.SendMail = cl.DefaultCo nfig.SendMail;

這是我最終想要達到的目標。我知道我可以找到某種方式,當我正在處理已初始化的DBContext(例如在用戶界面中)並執行某些操作時,可以使用cl.SendMail = EntitiesContext.DefaultConfig.First()。SendMail;如果我在對象本身(例如,在擴展我的實體功能的部分類中),我不能做到這一點,或者至少我不知道該怎麼做。

謝謝。

+0

像linq查詢? – BrunoMartinsPro

+0

爲什麼不在c#類中創建實體,使用依賴注入(簡單注入)配置存儲庫模式並使用linq訪問所有表? – BrunoMartinsPro

+0

@LightWalker,我真的不明白你的意思,有什麼例子嗎? –

回答

0

不,您不能從任何給定實體訪問DbContext。就編譯器而言,實體應該被視爲「普通舊CLR對象」(POCO),與實體框架組件沒有任何關係。

取決於爲什麼您在處理實體時想要訪問不相關的表格,因此存在不同的解決方案。依賴注入,存儲庫模式,無論你想要什麼。

相關問題