Я пытаюсь использовать Code First с моим локальным экземпляром Sql Server 2008 R2. Я создал пользователя "dev" и могу входить в систему и создавать базы данных с помощью Sql Managment Studio. Проблема в том, что я продолжаю получать сообщение об ошибке при попытке создать базу данных с помощью DbContext в EntityFramework. Вот сообщение об ошибке:
«Произошла ошибка, связанная с сетью или экземпляром, во время установление соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. Сетевые интерфейсы SQL, ошибка: 26 — указана ошибка обнаружения сервера/экземпляра»
Сообщение об ошибке. Я проверил свой сервер Sql, и он разрешает удаленные подключения.
Я абстрагировал свою систему с помощью следующего кода и получил то же самое. ошибка:
namespace CodeFirstConsole
{
public class Program
{
static void Main(string[] args)
{
var db = new MyContext();
try { Console.WriteLine(db.Parents.Count()); }
catch (Exception) { throw; }
Console.Read();
}
}
internal class MyContext : DbContext
{
public DbSet<ParentObject> Parents { get; set; }
public DbSet<ChildObject> Children { get; set; }
public MyContext()
{
this.Database.Connection.ConnectionString =
"Data Source=.;Database=ConsoleTest;Initial Catalog=ConsoleTest;User ID=dev;Password=dev;";
}
}
internal class ParentObject
{
public int Id { get; set; }
public string PropertyOne { get; set; }
}
internal class ChildObject
{
public int Id { get; set; }
public bool PropertyOne { get; set; }
public string PropertyTwo { get; set; }
public virtual ParentObject Parent { get; set; }
}
internal class MyInitializer : DropCreateDatabaseAlways<MyContext>
{
protected override void Seed(MyContext context)
{
context.Parents.Add(new ParentObject() { PropertyOne = "hi" });
base.Seed(context);
}
}
}