2016-12-14 3 views
0

У меня есть следующее сообщение об ошибке: provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance SpecifiedОшибка подключения к базе данных SQL с Entity Framework из MVC приложения .NET

То, что я должен был создать класс модели, наследующий DbContext класс:

class EmployeeContext : DbContext 
{ 
    public DbSet<Employee>Employees { get; set; } 
} 

и создать другой класс модели:

[Table("EmployeeList")] 
public class Employee 
{ 
    public int EmployeeID { get; set; }   // no semi-colon 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    public string position { get; set; } 
} 

и в классе контроллера я закодирован:

public class EmployeeController : Controller 
{ 
    public ActionResult EmployeeList(int id) 
    { 
     Employee employee = new Employee();   //instantiate the object of model class to be use 
     EmployeeContext employeecontext = new EmployeeContext(); //create context model class 
     // assign the value of the context model object that is mapped to database     
     employee = employeecontext.Employees.Single(x => x.EmployeeID == id);  
     return View("EmployeeDetail", employee); // include view name, object of model class 
    } 
} 

Затем я подключаюсь к серверу и базе данных, используя этот параметр в Server Explorer. 2

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

<add name="EmployeeContext" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet-MVCDemo-20161213044601.mdf;Initial Catalog=aspnet-MVCDemo-20161213044601;Integrated Security=True;User Instance=True" 
    providerName="System.Data.SqlClient" /> 

Сервер проверяется для разрешения удаленного подключения, работает с локальной базой данных.

Сайт URL также ввести правильно:/локальный/{Projectname}/служащий/EmployeeList/1

где 1 параметр идентификатор, который я использую для метода действия EmployeeList в контроллере Employee.

ответ

0

Ваша строка подключения указывает на экземпляр SQL Express SQL Server вместо фактического сервера базы данных. Data Source=.\SQLEXPRESS

Из скриншота вашего сервера исследователя: server explorer

Компонент Источник данных строки подключения должны быть Data Source=.\sqlserver2014

Update: после прочтения ваш вопрос еще раз, я понял больше, чем просто ваш Источник данных был неправильным. Строка подключения даже не указывает на правильную базу данных «MVCDemo».

Полный строки подключения, включая правильный Initial Catalog на основе скриншоте:

<add name="EmployeeContext" connectionString="Data Source=.\sqlserver2014;Initial Catalog=MVCDemo;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> 

Примечание: вы также можете получить окно Server Explorer, чтобы дать вам строку соединения для базы данных просмотра, щелкнув правой кнопкой мыши на узел базы данных, а затем в Modify Connection. Нажмите «Дополнительно», и значение строки подключения будет отображаться в разделе «Источник данных».

+0

Это абсолютно правильно, что строка подключения является источником моей проблемы, и ваше предложение помогает мне исправить это. Очень ценю! У меня возникла другая проблема после этого исправления (ошибка: ошибка входа в систему для пользователя «IIS APPPOOL \ DefaultAppPool».) Однако изменение использования IIS express вместо локального IIS полностью решает проблему. –

+0

@MinhPham, отлично слышать. Поскольку вы новичок в StackOverflow, см. [Что делать, если кто-то отвечает на мой вопрос?] (Http://stackoverflow.com/help/someone-answers) за то, что вы должны делать дальше. – Adrian

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