Не удалось загрузить файл Excel из-за того, что "db" не существует в текущем контексте

Я пытаюсь загрузить файл Excel, а затем отобразить и сохранить его в базе данных. Сначала я использую код Entity Framework. Если я отображаю файл, он работает нормально, но если я пытаюсь сохранить его в моем текущем текстовом тексте, я получаю эту ошибку " "db" не существует в текущем контексте. " Любое предложение будет хорошим решением для меня. При отображении я хочу сохранить тот же файл Excel. Если мой подход не верен, пожалуйста, подскажите мне, как сохранить данные в моем объекте на основе". учебный класс. У меня есть файл класса

public class dataextract
 {

    public string Code { get; set; }
    public string Name1 { get; set; }
    public string Group1 { get; set; }

}

В текстовом тексте

public class ReadContext : DbContext
{
    public ReadContext()
       : base("name = ExcelConnection")
    {
        Database.SetInitializer(new 
          MigrateDatabaseToLatestVersion<ReadContext,      
                 ReadAndDisplayExcel.Migrations.Configuration>());
    }
    public DbSet<dataextract> dataext { get; set; }

}

В контроллере

   public ActionResult Index(HttpPostedFileBase uploadfile)
    {
        //List<dataextract> lstStudent = new List<dataextract>();
        if (ModelState.IsValid)
        {
            if (uploadfile != null && uploadfile.ContentLength > 0)
            {
                //ExcelDataReader works on binary excel file
                Stream stream = uploadfile.InputStream;
                //We need to written the Interface.
                IExcelDataReader reader = null;
                if (uploadfile.FileName.EndsWith(".xls"))
                {
                    //reads the excel file with .xls extension
                    reader = ExcelReaderFactory.CreateBinaryReader(stream);
                }
                else if (uploadfile.FileName.EndsWith(".xlsx"))
                {
                    //reads excel file with .xlsx extension
                    reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                }
                else
                {
                    //Shows error if uploaded file is not Excel file
                    ModelState.AddModelError("File", "This file format is not supported");
                    return View();
                }               


                var conf = new ExcelDataSetConfiguration
                {
                    ConfigureDataTable = _ => new ExcelDataTableConfiguration
                    {
                        UseHeaderRow = true
                    }
                };

                DataSet result = reader.AsDataSet(conf);
                DataTable s1 = result.Tables[0];

                reader.Close();                  
                var query = from s in s1.AsEnumerable()

                             select new
                             {

                                 Code = s.Field<string>("Code"),
                                 Name1 = s.Field<string>("Name1"),
                                 Group1 = s.Field<string>("Group1")
                             };

                 using (ReadContext db = new ReadContext())
                 {
                     foreach (var ss in query)//error "'db' does not exist in the current context"
                     {
                         db.dataext.Add(ss);
                     }
                     db.SaveChanges();

                 }

                return View(s1);
            }
        }
        else
        {
            ModelState.AddModelError("File","Please upload your file");
        }
        return View();
  } 

1 ответ

Решение
using (ReadContext db = new ReadContext())
            {
                   try
                    {
                        var query = from s in s1.AsEnumerable()

                                    select new
                                    {


                                        CODE = s.Field<string>("CODE").ToString(),
                                        Name = s.Field<string>("Name").ToString(),
                                        Group = s.Field<string>("Group").ToString()
                                    };
                        var q1 = query.Select(x => new dataextract
                        {


                            CODE = x.CODE,
                            Name = x.CompanyName,
                            Group = x.Group,
                        }).ToList();

                        foreach (var ss in q1)
                        {

                            db.dataext.Add(ss);
                        }
                        db.SaveChanges();
                    }
            }
Другие вопросы по тегам