コード例 #1
0
        private Data.V2.CoreContext addToContext(Data.V2.CoreContext context, Domain2.Integrations.Catalyst.HasDataEntry entity, int count, int commitCount, bool recreateContext)
        {
            //https://stackoverflow.com/questions/5940225/fastest-way-of-inserting-in-entity-framework

            context.Set <Domain2.Integrations.Catalyst.HasDataEntry>().Add(entity);

            if (count % commitCount == 0)
            {
                context.SaveChanges();
                if (recreateContext)
                {
                    context.Dispose();
                    context = new Data.V2.CoreContext();
                    context.Configuration.AutoDetectChangesEnabled = false;
                }
            }

            return(context);
        }
コード例 #2
0
        public void Import()
        {
            var table = getTableFromExcel();

            // do this differently if we ever get real volume...
            _context.CatalystHasDataEntries.RemoveRange(_context.CatalystHasDataEntries);
            _context.SaveChanges();

            table.Rows.Remove(table.Rows[0]);   // blank row

            var dateRow  = table.Rows[0];
            int colCount = table.Columns.Count;

            int count = 0;

            for (int i = 1; i < table.Rows.Count - 1; i++)
            {
                string studentName = table.Rows[i][0].ToString();

                for (int j = 1; j < colCount - 1; j++)
                {
                    DateTime d        = getDateFromRawValue(dateRow[j].ToString());
                    var      initials = table.Rows[i][j].ToString();
                    if (!string.IsNullOrWhiteSpace(initials.Trim()))
                    {
                        count++;

                        var item = new Domain2.Integrations.Catalyst.HasDataEntry();
                        item.Name = studentName;
                        item.ProviderInitialsSet = initials.Trim();
                        item.Date = d;

                        _context = addToContext(_context, item, count, 100, true);
                    }
                }
            }
            _context.SaveChanges();
        }