示例#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();
        }