DataContext pour accès à 2 SGBD distinctes
Bonjour,
En asp.net MVC j'utilise le framework Entity pour générer mon modèle.
Je dois me connecter à 2 SGBD Oracle, pour croiser leurs données.
J'ai donc 2 fichiers edmx correspondant aux entités des 2 bases.
Je parviens sans difficulté à exécuter des requêtes sur des tables d'une bases à la fois, dans mon controller.
Je me suis créé un modèle qui manipule les données croisées
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class IntellFlexViewModel
{
public string f_Contract_Ref_NO{ get; set; }
public DateTime? f_Book_date { get; set; }
public string f_CounterParty { get; set; }
public string i_User_Ref_No { get; set; }
public string f_Sold_CCY{ get; set; }
public decimal? f_Sold_Amount{ get; set; }
public decimal i_Amt_Sold{ get; set; }
} |
Mais j'ai une erreur, dans mon controlleur, au débuggage de l'application :
Citation:
L'expression LINQ spécifiée contient des références à des requêtes qui sont associées à des contextes différents.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
ObjectQuery<TB_INTR_OUTGOING_DEAL> t_IntellDeals = _IntellEntities.TB_INTR_OUTGOING_DEAL;
ObjectQuery<TB_FXFRONTOFFICE> t_IntellFrontOffice = _IntellEntities.TB_FXFRONTOFFICE;
ObjectQuery<CSTB_CONTRACT> t_FlexCstb_contract = _FlexEntities.CSTB_CONTRACT;
ObjectQuery<FXTB_CONTRACT_MASTER> t_FlexFxtb_contract = _FlexEntities.FXTB_CONTRACT_MASTER;
ViewData.Model = (
from intellFrontOffice in _IntellEntities.TB_FXFRONTOFFICE
join flexCstbContract in t_FlexCstb_contract on intellFrontOffice.REF_NUM equals flexCstbContract.USER_REF_NO
join intellOutgoingDeals in t_IntellDeals on intellFrontOffice.REF_NUM equals intellOutgoingDeals.INTELLECT_ID
join flexFxtbContract in t_FlexFxtb_contract on flexCstbContract.CONTRACT_REF_NO equals flexFxtbContract.CONTRACT_REF_NO
where flexCstbContract.BOOK_DATE == maDate
select new IntellFlexViewModel
{
f_Contract_Ref_NO = flexCstbContract.CONTRACT_REF_NO,
f_Book_date = flexCstbContract.BOOK_DATE,
f_CounterParty = flexCstbContract.COUNTERPARTY,
i_User_Ref_No = intellFrontOffice.REF_NUM,
f_Sold_CCY = flexFxtbContract.SOLD_CCY,
//i_Ccy_Sold = intellFrontOffice.CCY_SOLD
f_Sold_Amount = flexFxtbContract.SOLD_AMOUNT,
i_Amt_Sold = intellFrontOffice.AMT_SOLD
}).ToList(); |