Sql Server2008R2のローカルインスタンスでCodeFirstを使用しようとしています。ユーザー「dev」を作成しました。ログインして、SqlManagmentStudioを使用してデータベースを作成できます。問題は、EntityFrameworkでDbContextを使用してデータベースを作成しようとすると、エラーメッセージが表示され続けることです。エラーメッセージは次のとおりです。
「SQLServerへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQLServerがリモート接続を許可するように構成されていることを確認してください。SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索中にエラーが発生しました "
SQL Serverを確認したところ、リモート接続が許可されているというエラーメッセージが表示されます。
次のコードでシステムを抽象化しましたが、同じエラーが発生します。
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);
}
}
}