2015-11-01 10 views
0

ASP.NET MVC с Entity Framework с кодовым кодом и работает над простым проектом HRM.Entity Framework не может генерировать базу данных

Моя модель данных Класс:

public class Department 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public List<Employee> Employees { get; set; } 
} 

Мой контекст Класс:

public class HumanResourceContext : DbContext 
{ 
    public DbSet<Department> Departments { get; set; } 
    public DbSet<Employee> Employees { get; set; } 
} 

Чтобы создать базу данных в моем родном контроллере Index действия:

public ActionResult Index() 
{ 
     ViewBag.Message = "Welcome"; 

     using (var context = new HR.DataModel.DAL.HumanResourceContext()) 
     { 
      var query = from e in context.Employees select e; 

      foreach (HR.DataModel.Entities.Employee e in query) 
      { 
       ViewBag.Message += e.Name + ", "; 
      } 
     } 

     return View(); 
} 

Теперь, когда я запускаю это Я получаю эту ошибку:

Cannot attach the file 'D:\Projects\HRSystem\HR.Web\App_Data\HR.DataModel.DAL.HumanResourceContext.mdf' as database 'HR.DataModel.DAL.HumanResourceContext'.

Что я делаю неправильно? Помоги пожалуйста. Я попытался найти решение этого. Но это не получилось. Благодаря

+0

Проверить это [ссылку] (HTTP: // форумов. asp.net/t/1768918.aspx) 'Я бы попытался дать базе данных другое имя. Иногда вы можете столкнуться с проблемами с SQL Express при попытке создать базу данных с тем же именем во второй раз. Есть способ исправить это с помощью SQL Server Management Studio, но обычно проще просто использовать другое имя базы данных. « – Webruster

+0

Я не получил этого сэра – OLDMONK

+0

Моя строка соединения OLDMONK

ответ

0

Удалить Initial Catalog свойства и добавить удаленный attachdbfilename пример:

<connectionStrings> 
    <add name="DefaultConnection" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-HR.Web-201‌​‌​51028044136.mdf;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Попробуйте изменить имя <add name> и шаблонных links, связанные с подключением строк

+0

, если вы обрезаете эту строку 'using (var context = new HR.DataModel.DAL.HumanResourceContext())' здесь вы используете имя соединения как 'HumanResourceContext', но вы предоставляли' Default Connection' в вашей связи, так что оба они были противоречит и поднял вам ошибку! – Webruster

Смежные вопросы