static void Main(string[] args) { using (var db1 = new DbOneContext()) { using (var db2 = new DbTwoContext()) { DbInitializer.Initialize(db1, db2); var lectures = db1.GetLectures(db2); foreach (var l in lectures) { Console.WriteLine(l.name); Console.WriteLine($"Proctor: {l.proctor.name}"); Console.WriteLine("Attendees:"); foreach (var a in l.attendees) { Console.WriteLine(a.name); } Console.WriteLine(); } Console.ReadLine(); } } }
public static UserModel GetUser(this DbTwoContext db2, int id) { var user = db2.Users.Find(id); return(new UserModel { id = user.Id, name = user.Name }); }
public static List <UserModel> GetAttendees(this DbTwoContext db2, int id) { var model = db2.UserLectures.Where(x => x.LectureId == id).Select(x => new UserModel { id = x.UserId, name = x.User.Name }).OrderBy(x => x.name).ToList(); return(model); }
public static List <LectureModel> GetLectures(this DbOneContext db1, DbTwoContext db2) { var model = db1.Lectures.Select(x => new LectureModel { id = x.Id, name = x.Name, proctor = db2.GetUser(x.UserId), attendees = db2.GetAttendees(x.Id) }).OrderBy(x => x.name).ToList(); return(model); }
public static void Initialize(DbOneContext db1, DbTwoContext db2) { db1.Database.EnsureCreated(); db2.Database.EnsureCreated(); if (!db2.Users.Any() && !db1.Lectures.Any()) { var users = new User[] { new User { Name = "User A" }, new User { Name = "User B" }, new User { Name = "User C" } }; db2.Users.AddRange(users); db2.SaveChanges(); var lectures = new Lecture[] { new Lecture { Name = "Lecture A", UserId = 1 }, new Lecture { Name = "Lecture B", UserId = 2 }, new Lecture { Name = "Lecture C", UserId = 3 } }; db1.Lectures.AddRange(lectures); db1.SaveChanges(); var userLectures = new UserLecture[] { new UserLecture { LectureId = 1, UserId = 2 }, new UserLecture { LectureId = 1, UserId = 3 }, new UserLecture { LectureId = 2, UserId = 1 }, new UserLecture { LectureId = 2, UserId = 3 }, new UserLecture { LectureId = 3, UserId = 1 }, new UserLecture { LectureId = 3, UserId = 2 } }; db2.UserLectures.AddRange(userLectures); db2.SaveChanges(); } }