star_tasneem Ответов: 1

Как получить данные из базы данных с помощью entity framework


У меня есть таблица базы данных, состоящая из {EmployeeId, name, city, gender}. я хочу получить их и показать в представлении..но получаю исключение из
"Дополнительная информация: контекст не может быть использован во время создания модели. Это исключение может быть вызвано, если контекст используется внутри метода OnModelCreating или если один и тот же экземпляр контекста доступен нескольким потокам одновременно. Обратите внимание, что члены экземпляра DbContext и связанные с ними классы не гарантированно являются потокобезопасными."

Моя модель:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace MvcPragim.Models
{
    [Table("tblEmployee")]
    public class Employee
    {
       
        public int EmployeeId { get; set; }
        public string Name { get; set; }
        public string Gender { get; set; }
        public string City { get; set; }

    }
}
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace MvcPragim.Models
{
    public class EmployeeContext:DbContext
    {
        public DbSet<Employee> Employees { get; set; }
    }
}


мой контроллер:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcPragim.Models;

namespace MvcPragim.Controllers
{
    public class EmployeeController : Controller
    {
        // GET: Employee
        public ActionResult Details(int id)
        {
            EmployeeContext employeeContext=new EmployeeContext();
            Employee aEmployee= employeeContext.Employees.Single(emp => emp.EmployeeId == id);
            return View(aEmployee);
        }
    }
}


глобальные.эйсакс:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace MvcPragim
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            Database.SetInitializer<MvcPragim.Models.EmployeeContext>(null);
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}


Это очень важный вопрос..Помогите мне, ребята..Как я могу от него избавиться?Спасибо заранее

1 Ответов

Рейтинг:
12

ramyajaya

This error is a very common error which will occur at the time of initialising the model.

in your case it might have occurred if your existing table and the model definition have not matched check on to it.

If you really feel it complex check on to this "http://www.codeproject.com/Articles/482801/DatabaseplusFirstplusDevelopmentpluswithplusASP-NE" which creates a model for your existing table 


star_tasneem

теперь у меня новая ошибка. это " базовый поставщик потерпел неудачу при открытии."

ramyajaya

Пожалуйста, добавьте более подробную информацию о сценарии, в котором это происходит