예제 #1
0
        static void Main(string[] args)
        {
            int i = 0;
            var sportsmanIdMap    = new Dictionary <string, int>();
            var connSource        = new infointesourceContext();
            var connTarget        = new infointeContext();
            var transactionSource = connSource.Database.BeginTransaction();
            var transactionTarget = connTarget.Database.BeginTransaction();

            connTarget.ChangeTracker.AutoDetectChangesEnabled = false;
            connSource.ChangeTracker.AutoDetectChangesEnabled = false;
            try
            {
                var masters = connSource.master.ToList();

                masters.ForEach(m =>
                {
                    var sportsman = new sportsman
                    {
                        birthCity    = m.birthcity,
                        birthCountry = m.birthcountry,
                        birthState   = m.birthstate,
                        bats         = m.bats,
                        debut        = m.debut,
                        bbrefID      = m.bbrefid,
                        weight       = m.weight,
                        throws       = m.throws,
                        retroID      = m.retroid,
                        nameGiven    = m.namegiven,
                        lastname     = m.namelast,
                        firstname    = m.namefirst,
                        height       = m.height,
                        finalGame    = m.finalgame,
                        deathCity    = m.deathcity,
                        deathCountry = m.deathcountry,
                        deathDay     = m.deathday,
                        deathMonth   = m.deathmonth,
                        deathState   = m.deathstate,
                        deathYear    = m.deathyear
                    };

                    if (m.birthday != null && m.birthmonth != null && m.birthyear != null)
                    {
                        DateTime dateTime   = new DateTime(m.birthyear.Value, m.birthmonth.Value, m.birthday.Value);
                        sportsman.birthdate = dateTime;
                    }

                    connTarget.sportsman.Add(sportsman);
                    connTarget.SaveChanges();
                    sportsmanIdMap.Add(m.playerid, sportsman.id);

                    foreach (var hofEntry in connSource.halloffame.Where(hof => hof.playerid == m.playerid))
                    {
                        var tmpHofEntry = new hall_of_fame()
                        {
                            ballots      = hofEntry.ballots,
                            category     = hofEntry.category,
                            inducted     = hofEntry.inducted,
                            needed       = hofEntry.needed,
                            needed_note  = hofEntry.needed_note,
                            sportsman_id = sportsman.id,
                            voted_by     = hofEntry.votedby,
                            votes        = hofEntry.votes,
                            year         = hofEntry.yearid
                        };

                        Console.WriteLine(sportsman.id.ToString());
                        connTarget.hall_of_fame.Add(tmpHofEntry);
                    }

                    connTarget.SaveChanges();

                    ++i;
                    Console.WriteLine("Inserted Masters: " + i.ToString());

                    if (i % 250 == 0)
                    {
                        transactionSource.Commit();
                        transactionTarget.Commit();
                        transactionSource = connSource.Database.BeginTransaction();
                        transactionTarget = connTarget.Database.BeginTransaction();
                    }
                });

                i = 0;
                var schools = connSource.schools.ToList();

                schools.ForEach(s =>
                {
                    var school = new school()
                    {
                        id        = s.schoolid,
                        city      = s.city,
                        name_full = s.name_full,
                        country   = s.country,
                        state     = s.state
                    };

                    connTarget.school.Add(school);

                    ++i;
                    Console.WriteLine("Inserted Schools: " + i.ToString());

                    connTarget.SaveChanges();
                    if (i % 250 == 0)
                    {
                        transactionSource.Commit();
                        transactionTarget.Commit();
                        transactionSource = connSource.Database.BeginTransaction();
                        transactionTarget = connTarget.Database.BeginTransaction();
                    }
                });

                i = 0;
                var collegePlayings = connSource.collegeplaying.ToList();

                collegePlayings.ForEach(cp =>
                {
                    var collegePlaying = new college_playing()
                    {
                        year         = cp.yearid,
                        school_id    = cp.schoolid,
                        sportsman_id = sportsmanIdMap[cp.playerid]
                    };

                    connTarget.Add(collegePlaying);

                    ++i;
                    Console.WriteLine("Inserted College: " + i.ToString());

                    connTarget.SaveChanges();
                    if (i % 250 == 0)
                    {
                        transactionSource.Commit();
                        transactionTarget.Commit();
                        transactionSource = connSource.Database.BeginTransaction();
                        transactionTarget = connTarget.Database.BeginTransaction();
                    }
                });

                transactionTarget.Commit();
                transactionSource.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.InnerException.Message);
                transactionTarget.Rollback();
                transactionSource.Rollback();
            }

            Console.ReadKey();
        }
예제 #2
0
        static void Main(string[] args)
        {
            int i                 = 0;
            var connSource        = new infointesourceContext();
            var connTarget        = new infointeContext();
            var transactionTarget = connTarget.Database.BeginTransaction();
            var transactionSource = connSource.Database.BeginTransaction();

            connTarget.ChangeTracker.AutoDetectChangesEnabled = false;
            connSource.ChangeTracker.AutoDetectChangesEnabled = false;
            try
            {
                var players = connSource.players.ToList();

                players.ForEach(sm =>
                {
                    var sportsman = new sportsman
                    {
                        firstname = sm.firstname,
                        lastname  = sm.lastname,
                        country   = sm.country,
                        hand      = sm.hand,
                    };

                    DateTime dateTime;
                    if (DateTime.TryParseExact(sm.birth.ToString(), "yyyyMMdd", new CultureInfo("de-DE"),
                                               DateTimeStyles.None, out dateTime))
                    {
                        sportsman.birthdate = dateTime;
                    }

                    connTarget.sportsman.Add(sportsman);
                    connTarget.SaveChanges();

                    foreach (var ranking in connSource.rankings.Where(r => r.player_id == sm.id))
                    {
                        var tmpRanking = new ranking
                        {
                            date         = ranking.date,
                            sportsman_id = sportsman.id,
                            position     = ranking.pos,
                            pts          = ranking.pts
                        };

                        connTarget.ranking.Add(tmpRanking);
                    }

                    connTarget.SaveChanges();

                    ++i;
                    Console.WriteLine("Inserted: " + i.ToString());

                    if (i % 250 == 0)
                    {
                        transactionTarget.Commit();
                        transactionSource.Commit();

                        transactionTarget = connTarget.Database.BeginTransaction();
                        transactionSource = connSource.Database.BeginTransaction();
                    }
                });

                transactionTarget.Commit();
                transactionSource.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.InnerException.Message);
                transactionTarget.Rollback();
                transactionSource.Rollback();
            }
            Console.ReadKey();
        }