public ActionResult Populate() { try { using (var db = new MyDbContext()) { //check if we have data if (!db.TestModels.Any()) { //using TableDirect is BY FAR one of the fastest ways to bulk insert data in SqlCe... using (db.Database.Connection) { db.Database.Connection.Open(); using (var cmd = (SqlCeCommand)db.Database.Connection.CreateCommand()) { cmd.CommandText = "TestModels"; cmd.CommandType = CommandType.TableDirect; var rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable); var rec = rs.CreateRecord(); for (var i = 0; i < 27000; i++) { rec.SetString(1, "a" + i); rec.SetString(2, "b" + i); rec.SetString(3, "c" + i); rec.SetString(4, "d" + i); rec.SetString(5, "e" + i); rec.SetString(6, "f" + i); rs.Insert(rec); } } } return View(true); } else { this.ModelState.AddModelError("DataError", "The database has already been populated with data"); return View(false); } } } catch (Exception ex) { this.ModelState.AddModelError("DataError", ex.Message); return View(false); } }
public IEnumerable<SimpleDataSet> GetAllData(string indexType) { using (var db = new MyDbContext()) { //using TableDirect is BY FAR one of the fastest ways to bulk insert data in SqlCe... using (db.Database.Connection) { db.Database.Connection.Open(); using (var cmd = (SqlCeCommand)db.Database.Connection.CreateCommand()) { cmd.CommandText = "TestModels"; cmd.CommandType = CommandType.TableDirect; var rs = cmd.ExecuteResultSet(ResultSetOptions.None); while(rs.Read()) { yield return new SimpleDataSet() { NodeDefinition = new IndexedNode() { NodeId = rs.GetInt32(0), Type = "TestType" }, RowData = new Dictionary<string, string>() { {"Column1", rs.GetString(1)}, {"Column2", rs.GetString(2)}, {"Column3", rs.GetString(3)}, {"Column4", rs.GetString(4)}, {"Column5", rs.GetString(5)}, {"Column6", rs.GetString(6)} } }; } } } } }