c# - Entity Framework join across two databases -


i have webapi. need return list of activityregisters. have repository this:

public iqueryable<activityregister> getregisters(int activityid)  {     return activitydbcontext.activityregisters.where(x => x.activityid == activityid x.isactive == true).orderby(x => x.activityregisterid).asqueryable(); } 

however, there nullable column on activityregister table called roomid. there rooms table in different database have admindbcontext for. need api return roomname in payload exists in admin db. how can above method return the roomname using roomid? thank you, i'm new , learning.

you can perform join on tables across 2 different contexts this:

public iqueryable<activityregister> getregisters(int activityid)  {     var activityregisters = activitydbcontext.activityregisters.where(x => x.activityid == activityid x.isactive == true).orderby(x => x.activityregisterid).tolist();     var roomidsfromactivityregisters = activityregisters.select(activityregister => activityregister.roomid);     var rooms = admindbcontext.rooms.where(room => roomsidfromactivityregisters.contains(room.id)).tolist();     var resultfromjoinacrosscontexts = (from activityregister in activityregisters                                          join room in rooms on activityregister.roomid equals room.id                                         select new activityregister                                         {                                             room = room,                                             roomid = room.id,                                             id = activityregister                                          });     return resultfromjoinacrosscontexts.asqueryable(); } 

Comments